각각의*_WIDTH매크로 (BOOL_WIDTH를 제외), BITINT_MAXWIDTH,(C23부터)CHAR_BIT 및 MB_LEN_MAX는 구현 정의 값으로 확장됩니다. 허용되는 최소값은 아래에 나열되어 있으며, /로 구분된 각 매크로 그룹은 항상 동일한 값으로 확장됩니다:
CHAR_BIT
와
MB_LEN_MAX
를 제외한 이러한 상수들의 타입은
정수 승격
이 해당 타입의 객체에 적용된 결과와 일치해야 합니다:
CHAR_MAX
는 타입이
int
또는
unsigned
int
일 수 있지만 절대
char
일 수 없습니다. 마찬가지로
USHRT_MAX
는 부호 없는 타입일 수 없습니다: 해당 타입은
int
일 수 있습니다.
독립형 구현에서는
sig_atomic_t
및/또는
wint_t
typedef 이름이 없을 수 있으며, 이 경우
SIG_ATOMIC_*
및/또는
WINT_*
매크로가 해당하게 존재하지 않습니다.
타입이 비정규(denormal) 수를 지원하는지 여부를 지정: -1 – 결정 불가, 0 – 없음, 1 – 있음 (매크로 상수)
FLT_RADIX
세 부동 소수점 타입의 표현에 사용되는 기수(정수 밑) (매크로 상수)
FLT_MANT_DIGDBL_MANT_DIGLDBL_MANT_DIG
FLT_RADIX 밑 자릿수로, float, double 및 longdouble 각각에 대해 정밀도를 잃지 않고 표현할 수 있는 자릿수 (매크로 상수)
FLT_DECIMAL_DIGDBL_DECIMAL_DIGLDBL_DECIMAL_DIG
(C11)
float/double/longdouble에서 최소 FLT_DECIMAL_DIG/DBL_DECIMAL_DIG/LDBL_DECIMAL_DIG 자릿수의 십진수로 변환했다가 되돌리는 것이 항등 변환: 부동 소수점 값을 직렬화/역직렬화하는 데 필요한 십진 정밀도 (매크로 상수)
DECIMAL_DIG
(C99)(C23에서 폐기됨)
longdouble에서 최소 DECIMAL_DIG 자릿수의 십진수로 변환했다가 longdouble로 되돌리는 것이 항등 변환: longdouble 를 직렬화/역직렬화하는 데 필요한 십진 정밀도(매크로 상수)
FLT_DIGDBL_DIGLDBL_DIG
텍스트 → float/double/longdouble → 텍스트 왕복 시 반올림이나 오버플로로 인한 변경 없이 보존이 보장되는 십진 자릿수 (매크로 상수)
FLT_MIN_EXPDBL_MIN_EXPLDBL_MIN_EXP
FLT_RADIX의 지수가 해당 정수보다 1 작은 값일 때 float, double 및 long double 각각에 대해 정규화된 값을 만드는 최소 음의 정수 (매크로 상수)
FLT_MIN_10_EXPDBL_MIN_10_EXPLDBL_MIN_10_EXP
10의 지수가 해당 정수일 때 float, double 및 long double 각각에 대해 정규화된 값을 만드는 최소 음의 정수 (매크로 상수)
FLT_MAX_EXPDBL_MAX_EXPLDBL_MAX_EXP
FLT_RADIX의 지수가 해당 정수보다 1 작은 값일 때 float, double 및 long double 각각에 대해 표현 가능한 유한 값을 만드는 최대 양의 정수 (매크로 상수)
FLT_MAX_10_EXPDBL_MAX_10_EXPLDBL_MAX_10_EXP
10의 지수가 해당 정수일 때 float, double 및 long double 각각에 대해 표현 가능한 유한 값을 만드는 최대 양의 정수 (매크로 상수)
FLT_MAXDBL_MAXLDBL_MAX
float, double 및 long double 각각의 최대 유한 값 (매크로 상수)
FLT_EPSILONDBL_EPSILONLDBL_EPSILON
1.0과 그 다음 표현 가능한 값의 차이 (float, double 및 long double 각각) (매크로 상수)
FLT_MINDBL_MINLDBL_MIN
float, double 및 long double 각각의 최소 정규화된 양수 값 (매크로 상수)