数据类型范围
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 short ,unsigned short int |
0 到 65,535 |
__int32 |
4 | signed , signed int , int |
-2,147,483,648 到 2,147,483,647 |
unsigned __int32 |
4 | unsigned ,unsigned int |
0 到 4,294,967,295 |
__int64 |
8 | long long ,signed 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 | 无 | false 或 true |
char |
1 | 无 | -128 到 127(默认) 0 到 255(在通过使用 /J 进行编译时) |
signed char |
1 | 无 | -128 到 127 |
unsigned char |
1 | 无 | 0 到 255 |
short |
2 | short int ,signed short int |
-32,768 到 32,767 |
unsigned short |
2 | unsigned short int |
0 到 65,535 |
long |
4 | long int ,signed 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(七位数字) |
double |
8 | 无 | 1.7E +/- 308(15 位数字) |
long double |
与 double 相同 |
无 | 与 double 相同 |
wchar_t |
2 | __wchar_t |
0 到 65,535 |
__wchar_t
的变量指定宽字符类型或多字节字符类型。 在字符或字符串常量前使用 L
前缀以指定宽字符类型常量。
signed
和 unsigned
是可用于任何整型( bool
除外)的修饰符。 请注意,对于重载和模板等机制而言,char
、signed char
和 unsigned char
是三种不同的类型。
int
和 unsigned int
类型的大小为 4 个字节。 但是,由于语言标准允许可移植代码特定于实现,因此该代码不应依赖于 int
的大小。
Visual Studio 中的 C/C++ 还支持按大小分类的整型。 有关详细信息,请参阅 __int8, __int16, __int32, __int64
和整数限制。
有关每个类型的大小限制的详细信息,请参阅内置类型。
枚举类型的范围因语言上下文和指定的编译器标志而异。 有关详细信息,请参阅 C 枚举声明 和 枚举。