<limits.h>c语言所有数据类型最大值和最小值的规定
ISO C标准对C语言中数据类型的大小做了要求,下表展示了这个要求,其中有不同数据类型的最小值的要求,也有在32bit和64bit操作系统下的实现。
C语言数据类型大小规定与实现
名称 | 说明 | 可接受的最小值 | 32bit系统典型值 | 64bit系统典型值 |
CHAR_BIT | char的位数 | 8 | 8 | 8 |
CHAR_MAX | char的最大值 | 127 | 127 | |
CHAR_MIN | char的最小值 | -127 | -127 | |
SCHAR_MAX | signed char的最大值 | 127 | 127 | 127 |
SCHAR_MIN | signed char的最小值 | -127 | 127 | 127 |
UCHAR_MAX | unsigned char的最大值 | 255 | 255 | 255 |
INT_MAX | int的最大值 | 32767 | 2147483647 | 2147483647 |
INT_MIN | int的最小值 | -32767 | -2147483648 | -2147483648 |
UINT_MAX | unsigned int的最大值 | 65535 | 4294967295 | 4294967295 |
SHRT_MAX | short的最大值 | 32767 | 32767 | 32767 |
SHRT_MIN | short的最小值 | -32767 | -32768 | -32768 |
USHRT_MAX | unsigned short的最大值 | 65535 | 65535 | 65535 |
LONG_MAX | long的最大值 | 2147483647 | 2147483647 | 9223372036854775807 |
LONG_MIN | long的最大值 | -2147483647 | -2147483648 | -9223372036854775808 |
ULONG_MAX | unsigned long的最大值 | 4294967295 | 4294967295 | 18446744073709551615 |
LLONG_MAX | long long的最大值 | 9 223 372 036 854 775 807 | 9 223 372 036 854 775 807 | 9 223 372 036 854 775 807 |
LLONG_MIN | long long的最小值 | -9 223 372 036 854 775 807 | -9 223 372 036 854 775 808 | -9 223 372 036 854 775 808 |
ULLONG_MAX | unsigned long long的最大值 | 18 446 744 073 709 551 615 | 18 446 744 073 709 551 615 | 18 446 744 073 709 551 615 |
MB_LEN_MAX | 在一个多字节常量中的最大字节数 | 1 | 6 | 16 |
总结下来就是,32bit系统中long占32bit,64bit系统中long占64bit。32和64只有这么一个区别(典型情况下)