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 to 255 when compiled by using /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(7 位数) |
| 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 类型具有四个字节的大小。 但是,由于语言标准允许可移植代码特定于实现,因此该代码不应依赖于 int 的大小。
Visual Studio 中的 C/C++ 还支持按大小分类的整型。 有关详细信息,请参阅 __int8, __int16, __int32, __int64 和 整数限制。
参考:https://docs.microsoft.com/zh-cn/cpp/cpp/data-type-ranges?view=msvc-170