float_t, double_t

来自cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
函数
基本运算
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
指数函数
(C99)
(C99)
(C99)
(C99)
幂函数
(C99)
(C99)
三角及双曲函数
(C99)
(C99)
(C99)
误差及伽马函数
(C99)
(C99)
(C99)
(C99)
临近整数的浮点运算
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
浮点数操作函数
(C99)(C99)
(C99)
(C99)
分类
(C99)
(C99)
(C99)
类型
float_tdouble_t
(C99)(C99)
宏常量
 
定义于头文件 <math.h>
typedef /*implementation defined*/ float_t
(C99 起)
typedef /*implementation defined*/ double_t
(C99 起)

float_tdouble_t 类型分别是至少与 floatdouble 一样宽的浮点类型,并满足 double_t 至少与 float_t 一样宽。 FLT_EVAL_METHOD 的值确定 float_tdouble_t 的类型。

 
FLT_EVAL_METHOD 解释
0 float_tdouble_t 分别等价于 floatdouble
1 float_tdouble_t 都等价于 double
2 float_tdouble_t 都等价于 long double
其他 float_tdouble_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)