float_t, double_t
|
在标头
<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 Mathematics <math.h> (第 231 页)
- C99 标准(ISO/IEC 9899:1999):
-
- 7.12 Mathematics <math.h> (第 212 页)
参阅
|
(C99)
|
在中间结果上使用扩展精度:0 不用,1 用 double 代替 float,2 使用 long double (宏常量) |