FLT_EVAL_METHOD
出自 cppreference.com
| 定義於標頭檔 <float.h> |
||
| #define FLT_EVAL_METHOD /* 實作定義 */ |
(自 C99 起) | |
指定浮點數常數以及除賦值、強制轉型和函式呼叫之外的所有運算(運算子、運算元的隱含轉換)所得浮點數值的範圍與精度。
| 數值 | 說明 |
| 負值(-1 除外) | 實作定義的行為 |
| -1 | 預設精度未知 |
| 0 | 所有運算與常數皆以所用型別的範圍與精度進行評估。此外,float_t 與 double_t 分別等同於 float 與 double |
| 1 | 所有運算與常數皆以 double 的範圍與精度進行評估。此外,float_t 與 double_t 皆等同於 double |
| 2 | 所有運算與常數皆以 long double 的範圍與精度進行評估。此外,float_t 與 double_t 皆等同於 long double |
[編輯] 備註
無論 FLT_EVAL_METHOD 的值為何,任何浮點運算式都可能被「收縮」(contracted),亦即在計算時,如同所有中間結果都具有無限的範圍與精度(除非 #pragma STDC FP_CONTRACT 為關閉狀態)。
強制轉型與賦值會去除任何額外的範圍與精度:這模擬了將值從擴充精度 FPU 暫存器存入標準大小記憶體位置的動作。
[編輯] 參見
| (C99) |
最有效率的浮點型別,寬度至少與 float 相同 (typedef) |
| (C99) |
最有效率的浮點型別,寬度至少與 double 相同 (typedef) |
| C++ 文件 關於 FLT_EVAL_METHOD 的說明
| |