这个头文件提供 整数范围限制 的相关功能,例如 int 的位宽度、最小值、最大值等。
| 宏 | 标准 | 说明 |
|---|---|---|
BOOL_WIDTH |
C23 | _Bool 的位宽度 |
BOOL_MAX |
C29 | _Bool 的最大值 |
CHAR_BIT |
C89 | 字节的位宽度,通常是 8 |
MB_LEN_MAX |
C89 | 多字节字符的最大字节数 |
CHAR_WIDTH |
C23 | char 的位宽度,同 CHAR_BIT |
CHAR_MIN |
C89 | char 的最小值 |
CHAR_MAX |
C89 | char 的最大值 |
SCHAR_WIDTH |
C23 | signed char 的位宽度 |
SHRT_WIDTH |
C23 | short int 的位宽度 |
INT_WIDTH |
C23 | int 的位宽度 |
LONG_WIDTH |
C23 | long 的位宽度 |
LLONG_WIDTH |
C23 | long long 的位宽度 |
SCHAR_MIN |
C89 | singed char 的最小值 |
SHRT_MIN |
C89 | short 的最小值 |
INT_MIN |
C89 | int 的最小值 |
LONG_MIN |
C89 | long 的最小值 |
LLONG_MIN |
C99 | long long 的最小值 |
SCHAR_MAX |
C89 | singed char 的最大值 |
SHRT_MAX |
C89 | short 的最大值 |
INT_MAX |
C89 | int 的最大值 |
LONG_MAX |
C89 | long 的最大值 |
LLONG_MAX |
C99 | long long 的最大值 |
UCHAR_WIDTH |
C23 | unsigned char 的位宽度 |
USHRT_WIDTH |
C23 | unsigned short 的位宽度 |
UINT_WIDTH |
C23 | unsigned int 的位宽度 |
ULONG_WIDTH |
C23 | unsigned long 的位宽度 |
ULLONG_WIDTH |
C23 | unsigned long long 的位宽 |
UCHAR_MAX |
C89 | unsigned char 的位最大值 |
USHRT_MAX |
C89 | unsigned short 的位最大值 |
UINT_MAX |
C89 | unsigned int 的位最大值 |
ULONG_MAX |
C89 | unsigned long 的位最大值 |
ULLONG_MAX |
C99 | unsigned long long 的位最大值 |
#include <stdio.h>
#include <limits.h>
int main(void) {
printf("CHAR_BIT: %d\n", CHAR_BIT);
printf("SCHAR_MIN: %d\n", SCHAR_MIN);
printf("SCHAR_MAX: %d\n", SCHAR_MAX);
printf("UCHAR_MAX: %u\n", UCHAR_MAX);
printf("INT_MIN: %d\n", INT_MIN);
printf("INT_MAX: %d\n", INT_MAX);
printf("UINT_MAX: %u\n", UINT_MAX);
printf("LONG_MIN: %ld\n", LONG_MIN);
printf("LONG_MAX: %ld\n", LONG_MAX);
printf("ULONG_MAX: %lu\n", ULONG_MAX);
return 0;
}
运行结果:
CHAR_BIT: 8
SCHAR_MIN: -128
SCHAR_MAX: 127
UCHAR_MAX: 255
INT_MIN: -2147483648
INT_MAX: 2147483647
UINT_MAX: 4294967295
LONG_MIN: -9223372036854775808
LONG_MAX: 9223372036854775807
ULONG_MAX: 18446744073709551615