对32位和64位的编译器,微软Visual C++ 所能识别的数据类型如下表所示。注意,下面的类型有对应的unsigned类型
-
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)
Type Name | Bytes | Other Names | Range of Values |
---|---|---|---|
int | 4 | signed | –2,147,483,648 to 2,147,483,647 |
unsigned int | 4 | unsigned | 0 to 4,294,967,295 |
__int8 | 1 | char | –128 to 127 |
unsigned __int8 | 1 | unsigned char | 0 to 255 |
__int16 | 2 | short, short int, signed short int | –32,768 to 32,767 |
unsigned __int16 | 2 | unsigned short, unsigned short int | 0 to 65,535 |
__int32 | 4 | signed, signed int, int | –2,147,483,648 to 2,147,483,647 |
unsigned __int32 | 4 | unsigned, unsigned int | 0 to 4,294,967,295 |
__int64 | 8 | long long, signed long long | –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
unsigned __int64 | 8 | unsigned long long | 0 to 18,446,744,073,709,551,615 |
bool | 1 | none | false or true |
char | 1 | none | –128 to 127 by default 0 to 255 when compiled with /J |
signed char | 1 | none | –128 to 127 |
unsigned char | 1 | none | 0 to 255 |
short | 2 | short int, signed short int | –32,768 to 32,767 |
unsigned short | 2 | unsigned short int | 0 to 65,535 |
long | 4 | long int, signed long int | –2,147,483,648 to 2,147,483,647 |
unsigned long | 4 | unsigned long int | 0 to 4,294,967,295 |
long long | 8 | none (but equivalent to __int64) | –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
unsigned long long | 8 | none (but equivalent to unsigned __int64) | 0 to 18,446,744,073,709,551,615 |
enum | varies | none | See Remarks. |
float | 4 | none | 3.4E +/- 38 (7 digits) |
double | 8 | none | 1.7E +/- 308 (15 digits) |
long double | same as double | none | same as double |
wchar_t | 2 | __wchar_t | 0 to 65,535 |
A variable of __wchar_t designates a wide-character or multibyte character type. By default wchar_t is a typedef for unsigned short. Use the L prefix before a character or string constant to designate the wide-character-type constant. When compiling with /Zc:wchar_t or /Za, the compiler can distinguish between an unsigned short and wchar_t for function overload purposes.
Signed and unsigned are modifiers that can be used with any integral type except bool. The char type behaves like signed char by default, but you can specify /J (compiler option) to make behave like unsigned char by default.
The int and unsigned int types have the size of the system word: four bytes. However, portable code should not depend on the size of int.