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 的值如何,任何浮点表达式都可能被压缩,也就是说,计算时好像所有中间结果都具有无限范围和精度(除非 #pragma STDC FP_CONTRACT 关闭)
强制转换和赋值会去除任何多余的范围和精度:这模拟了将值从扩展精度 FPU 寄存器存储到标准大小的内存位置的操作。
[编辑] 另请参见
(C99)(C99) |
最有效的浮点类型,至少与 float 或 double 一样宽 (typedef) |
C++ 文档 for FLT_EVAL_METHOD
|