float_t, double_t
Defined in header <math.h> | ||
|---|---|---|
typedef /* implementation-defined */ float_t | (since C99) | |
typedef /* implementation-defined */ double_t | (since C99) |
The types float_t and double_t are floating types at least as wide as float and double, respectively, and such that double_t is at least as wide as float_t. The value of FLT_EVAL_METHOD determines the types of float_t and double_t.
FLT_EVAL_METHOD | Explanation |
|---|---|
0 | float_t and double_t are equivalent to float and double, respectively |
1 | both float_t and double_t are equivalent to double |
2 | both float_t and double_t are equivalent to longdouble |
other | both float_t and double_t are implementation defined |
Example
#include <float.h>
#include <math.h>
#include <stdio.h>
#define SHOW(expr) printf("%s = %d\n", #expr, (int)(expr))
int main()
{
SHOW(FLT_EVAL_METHOD);
SHOW(sizeof(float));
SHOW(sizeof(float_t));
SHOW(sizeof(double));
SHOW(sizeof(double_t));
}
Possible output:
FLT_EVAL_METHOD = 1 sizeof(float) = 4 sizeof(float_t) = 8 sizeof(double) = 8 sizeof(double_t) = 8
References
- C23 standard (ISO/IEC 9899:2024):
- 7.12 Mathematics <math.h> (p: TBD)
- C17 standard (ISO/IEC 9899:2018):
- 7.12 Mathematics <math.h> (p: TBD)
- 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)
See also
|
(C99) | specifies in what precision all arithmetic operations are done (macro constant) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/numeric/math/float_t