VC中C++數值範圍的確定
阿新 • • 發佈:2018-06-10
劃線 zh-cn 但是 結束 允許 整數 enum double com
1. Visual C++ 32 位和 64 位編譯器可識別本文後面的表中的類型。
如果其名稱以兩個下劃線 (__
) 開始,則數據類型是非標準的。
下表中指定的範圍均包含起始值和結束值。
類型名稱 | 字節 | 其他名稱 | 值的範圍 |
---|---|---|---|
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 | 無(與無符號的 __int64 等效) | 0 到 18,446,744,073,709,551,615 |
enum | varies | 無 | 請參閱本文後面的備註 |
浮動 | 4 | 無 | 3.4E +/- 38(7 位數) |
double | 8 | 無 | 1.7E +/- 308(15 位數) |
long double | 與 double 相同 | 無 | 與 double 相同 |
wchar_t | 2 | __wchar_t | 0 到 65,535 |
2. 代碼移植性問題,由於 語言標準允許可移植代碼特定於實現,因此推薦不使用 _ _ intX 類型,因為這是Microsoft VC獨有的數據類型。
(1)int
和 unsigned``int
類型具有四個字節的大小。
但是,由於語言標準允許可移植代碼特定於實現,因此該代碼不應依賴於 int
的大小。
(2)__intn 類型說明符聲明 8 位、16 位、32 位或 64 位整數變量,其中 n 為 8、16、32 或 64。
endl;
VC中C++數值範圍的確定