Spec-Zone.ru › C

float_t, double_t

Определено в заголовке <math.h>
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
other оба 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> (с. 231)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.12 Математика <math.h> (с. 212)

См. также

FLT_EVAL_METHOD
(C99)
использование расширенной точности для промежуточных результатов: 0 не используется, 1 double используется вместо float, 2: long double используется
(макроконстанта)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/math/float_t

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API