FLT_EVAL_METHOD
来自 cppreference.cn
定义于头文件 <float.h> |
||
#define FLT_EVAL_METHOD /* implementation-defined */ |
(since 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 的值如何,任何浮点表达式都可能被“收缩”,即,计算时就好像所有中间结果都具有无限的范围和精度(除非 #pragma STDC FP_CONTRACT 关闭)。
强制类型转换和赋值会去除任何多余的范围和精度:这模拟了将值从扩展精度的 FPU 寄存器存储到标准大小的内存位置的操作。
[编辑] 参见
(C99) |
至少与 float 一样宽的最有效浮点类型 (typedef) |
(C99) |
至少与 double 一样宽的最有效浮点类型 (typedef) |