C 和 C++ 整数限制

Microsoft 专用

下表列出了 C 和 C++ 整数类型的限制。 这些限制在 C 标准标头文件 <limits.h> 中定义。 C++ 标准库标头 <limits> 包括 <climits>,其中包括 <limits.h>

Microsoft C 还允许声明固定大小的整数变量,即大小为 8 位、16 位、32 位或 64 位的整数类型。 有关 C 中固定大小整数的详细信息,请参阅固定大小整数类型

对整数常量的限制

常量 含义 “值”
CHAR_BIT 不是位域的最小变量中的位数。 8
SCHAR_MIN signed char 类型的变量的最小值。 -128
SCHAR_MAX signed char 类型的变量的最大值。 127
UCHAR_MAX unsigned char 类型的变量的最大值。 255 (0xff)
CHAR_MIN char 类型的变量的最小值。 -128;如果使用了 /J 选项,则为 0
CHAR_MAX char 类型的变量的最大值。 127;如果使用了 /J 选项,则为 255
MB_LEN_MAX 多字节字符中的最大字节数。 5
SHRT_MIN short 类型的变量的最小值。 -32768
SHRT_MAX short 类型的变量的最大值。 32767
USHRT_MAX unsigned short 类型的变量的最大值。 65535 (0xffff)
INT_MIN int 类型的变量的最小值。 -2147483647 - 1
INT_MAX int 类型的变量的最大值。 2147483647
UINT_MAX unsigned int 类型的变量的最大值。 4294967295 (0xffffffff)
LONG_MIN long 类型的变量的最小值。 -2147483647 - 1
LONG_MAX long 类型的变量的最大值。 2147483647
ULONG_MAX unsigned long 类型的变量的最大值。 4294967295 (0xffffffff)
LLONG_MIN long long 类型的变量的最小值。 -9,223,372,036,854,775,807 - 1
LLONG_MAX long long 类型的变量的最大值。 9,223,372,036,854,775,807
ULLONG_MAX unsigned long long 类型的变量的最大值。 18,446,744,073,709,551,615 (0xffffffffffffffff)

如果值超出了最大整数表示形式,则 Microsoft 编译器会产生错误。

结束 Microsoft 专用

请参阅

C 整数常量