float_t, double_t
定义于头文件 | ||
typedef /*implementation defined*/ float_t | (C99 起) | |
typedef /*implementation defined*/ 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 standard (ISO/IEC 9899:2011): 7.12 Mathematics <math.h> (p: 231)
- C99 standard (ISO/IEC 9899:1999): 7.12 Mathematics <math.h> (p: 212)