数据类型范围
对 32 位和 64 位编译器, Microsoft Visual C++ 识别在下表中显示的类型。注意以下类型还具有无符号形式:
int (unsignedint)
__int8 (unsigned__int8)
__int16 (unsigned__int16)
__int32 (unsigned__int32)
__int64 (unsigned__int64)
short (unsignedshort)
long (unsignedlong)
longlong (unsignedlonglong)
类型名称 |
字节 |
其他名称 |
值的范围 |
---|---|---|---|
int |
4 |
签名 |
-2,147,483,648 到 2,147,483,647 |
unsigned int |
4 |
unsigned |
0 到 4,294,967,295 |
__int8 |
1 |
char |
-128 到 127 |
无符号 __int8 |
1 |
unsigned char |
0 到 255 |
__int16 |
2 |
短,短的 int,有符号短的 int |
-32,768 到 32,767 |
无符号 __int16 |
2 |
unsigned short,无符号短 int |
0 到 65,535 |
__int32 |
4 |
签名的,签名的 int, int |
-2,147,483,648 到 2,147,483,647 |
无符号 __int32 |
4 |
unsigned, unsigned int |
0 到 4,294,967,295 |
__int64 |
8 |
长时间,长时间签名 |
-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned __int64 |
8 |
unsigned long 长 |
0 到 18,446,744,073,709,551,615 |
bool |
1 |
无 |
错误或真 |
char |
1 |
无 |
– 128 到 127 默认情况下 0 到 255,在使用编译 /J |
signed char |
1 |
无 |
-128 到 127 |
unsigned char |
1 |
无 |
0 到 255 |
short |
2 |
短的 int,有符号短的 int |
-32,768 到 32,767 |
unsigned short |
2 |
无符号短 int |
0 到 65,535 |
long |
4 |
长, int 签名的长的 int |
-2,147,483,648 到 2,147,483,647 |
unsigned long |
4 |
无符号 long int |
0 到 4,294,967,295 |
长时间 |
8 |
对 __int64 的非 (不过,等效) |
-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned 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 位) |
长的二进制文件 |
和 double 相同 |
无 |
和 double 相同 |
wchar_t |
2 |
__wchar_t |
0 到 65,535 |
__wchar_t 的变量指定一个宽字符或多字节字符类型。默认情况下 wchar_t 是 unsigned的shorttypedef 。在常数或字符的字符串之前使用 L 标题指定为宽字符类型的常量。在使用编译 /Zc: wchar_t 或 /Za时,编译器无法分清函数重载目的 unsignedshort 和 wchar_t 之间。
Signed 和 unsigned 是可用于除 bool的任何整型修饰符。默认情况下 char 类型的行为与 signed char ,但是,您可以指定 /J (编译器可选) 默认情况下对行为与 unsigned char 。
int 和 unsignedint 类型具有系统的范围:四个字节。但是,可移植代码不应依赖于 int的大小。
Microsoft C/C++ 函数为大小的整数类型还支持。请参见 __int8, __int16, __int32, __int64 有关更多信息。另请参见 INTEGER 限制。
请参见 基础类型 有关每个类型的范围限制的更多信息。
枚举类型的大小作为语言上下文和指定的编译器标志更改。在 C 和 C++ 非 CLR 枚举,枚举枚举类型的常量和值表示基于类型 int。C++ CLR 枚举能由一个指定的标量类型返回。枚举的范围定义为位域中存储的最小日期和最大其枚举数的最小值和最大值。但是, C++ 编译器将允许在枚举的后备类型内的所有值指定 (这可能需要转换)。更多信息,请参见 C枚举声明 和 C++枚举声明。