float_t、double_t
来自 cppreference.com
在头文件 <math.h> 中定义 |
||
typedef /*实现定义*/ float_t |
(自 C99 起) | |
typedef /*实现定义*/ double_t |
(自 C99 起) | |
类型 float_t 和 double_t 是浮点类型,至少与 float 和 double 一样宽,并且 double_t 至少与 float_t 一样宽。 的值 FLT_EVAL_METHOD 决定了 float_t 和 double_t 的类型。
FLT_EVAL_METHOD | 解释 |
0
|
float_t 和 double_t 等效于 float 和 double |
1
|
两者 float_t 和 double_t 等效于 double |
2
|
两者 float_t 和 double_t 等效于 long double |
其他
|
两者 float_t 和 double_t 是实现定义的 |
[编辑] 示例
运行此代码
#include <float.h> #include <math.h> #include <stdio.h> int main(void) { printf("%d\n", FLT_EVAL_METHOD); printf("%zu %zu\n", sizeof(float),sizeof(float_t)); printf("%zu %zu\n", sizeof(double),sizeof(double_t)); return 0; }
可能的输出
0 4 4 8 8
[编辑] 参考文献
- C11 标准 (ISO/IEC 9899:2011)
- 7.12 数学 <math.h> (p: 231)
- C99 标准 (ISO/IEC 9899:1999)
- 7.12 数学 <math.h> (p: 212)
[编辑] 另请参阅
(C99) |
使用扩展精度作为中间结果:0 未使用,1 double 用于代替 float,2: long double (宏常量) |