数据类型范围

Microsoft C++ 32 位和 64 位编译器可识别本文后面的表中的类型。

  • int (unsigned int)

  • __int8 (unsigned __int8)

  • __int16 (unsigned __int16)

  • __int32 (unsigned __int32)

  • __int64 (unsigned __int64)

  • short (unsigned short)

  • long (unsigned long)

  • long long (unsigned long long)

如果其名称以两个下划线 (__) 开始,则数据类型是非标准的。

下表中指定的范围均包含起始值和结束值。

类型名称 字节 其他名称 值的范围
int 4 signed -2,147,483,648 到 2,147,483,647
unsigned int 4 unsigned 0 到 4,294,967,295
__int8 1 char -128 到 127
unsigned __int8 1 unsigned char 0 到 255
__int16 2 short, short int, signed short int -32,768 到 32,767
unsigned __int16 2 unsigned shortunsigned short int 0 到 65,535
__int32 4 signed, signed int, int -2,147,483,648 到 2,147,483,647
unsigned __int32 4 unsignedunsigned int 0 到 4,294,967,295
__int64 8 long longsigned long long -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned __int64 8 unsigned long long 0 到 18,446,744,073,709,551,615
bool 1 falsetrue
char 1 -128 到 127(默认)

0 到 255(在通过使用 /J 进行编译时)
signed char 1 -128 到 127
unsigned char 1 0 到 255
short 2 short intsigned short int -32,768 到 32,767
unsigned short 2 unsigned short int 0 到 65,535
long 4 long intsigned long int -2,147,483,648 到 2,147,483,647
unsigned long 4 unsigned long int 0 到 4,294,967,295
long long 8 无(但与 __int64 等效) -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long long 8 无(但与 unsigned __int64 等效) 0 到 18,446,744,073,709,551,615
enum 多种多样
float 4 3.4E +/- 38(7 位数)
double 8 1.7E +/- 308(15 位数)
long double double 相同 double 相同
wchar_t 2 __wchar_t 0 到 65,535

根据使用方式, __wchar_t 的变量指定宽字符类型或多字节字符类型。 在字符或字符串常量前使用 L 前缀以指定宽字符类型常量。

signedunsigned 是可用于任何整型( bool除外)的修饰符。 请注意,对于重载和模板等机制而言,charsigned charunsigned char 是三种不同的类型。

intunsigned int 类型具有四个字节的大小。 但是,由于语言标准允许可移植代码特定于实现,因此该代码不应依赖于 int 的大小。

Visual Studio 中的 C/C++ 还支持按大小分类的整型。 有关详细信息,请参阅 __int8, __int16, __int32, __int64整数限制

有关每个类型的大小限制的详细信息,请参阅内置类型

枚举类型的范围因语言上下文和指定的编译器标志而异。 有关详细信息,请参阅 C 枚举声明枚举

另请参阅

关键字
内置类型