內建類型(也稱為 基本型別)是由C++語言標準所指定,並內建於編譯程式中。 內建類型未定義於任何頭檔中。 內建類型分為三個主要類別: 整數、 浮點和 void。 整數類型代表整數。 浮點類型可以指定可能有小數部分的值。 編譯程式會將大部分的內建類型視為不同的類型。 不過,某些類型是 同義字,或編譯程式視為對等型別。
Void 類型
此 void 類型描述一組空的值。 無法指定類型 void 變數。 此 void 類型主要用於宣告不傳回任何值的函式,或宣告不具型別或任意類型數據的泛型指標。 所有運算式都可以明確轉換或轉型為類型 void。 不過,這類運算式僅限於下列用法:
std::nullptr_t
關鍵詞 nullptr 是 類型的 std::nullptr_tNull 指標常數,可轉換成任何原始指標類型。 如需詳細資訊,請參閱nullptr。
布林值類型
型 bool 別可以有值 true 和 false。 類型的大小是實作 bool 特定的。 如需Microsoft特定實作詳細數據,請參閱 內建類型 的大小。
字元類型
此 char 類型是字元表示類型,可有效率地編碼基本執行字元集的成員。 C++ 編譯器會將類型為 char, signed char和 unsigned char 的變數視為具有不同的類型。
Microsoft特定:除非char使用編譯選項,否則類型int變數預設會升階為signed char從類型/J升階為 。 在此情況下,它們會被視為類型 unsigned char ,而且會升級為 int 不含符號擴充功能。
類型的 wchar_t 變數是寬字元或多位元組位元型態。
L使用字元或字串常值之前的前置詞來指定寬字元類型。
Microsoft特定:根據預設, wchar_t 是原生類型,但您可以使用 /Zc:wchar_t- 來為 建立 wchar_t typedef unsigned short。
__wchar_t 是 Microsoft 特定的類型,與原生 wchar_t 類型同義。
此 char8_t 類型用於UTF-8字元表示。 其表示法與 unsigned char相同,但會由編譯程式視為不同的類型。 此 char8_t 類型在 C++20 中是新的。
Microsoft特定:使用 char8_t 需要 /std:c++20 編譯程式選項或更新版本(例如 /std:c++latest)。
此 char16_t 類型用於UTF-16字元表示。 它必須夠大,才能表示任何UTF-16程式代碼單位。 編譯程式會將其視為不同的類型。
此 char32_t 類型用於UTF-32字元表示。 它必須夠大,才能表示任何UTF-32程式碼單位。 編譯程式會將其視為不同的類型。
浮點類型
浮點類型使用 IEEE-754 表示法,在各種大小範圍內提供小數值的近似值。 下表列出C++中的浮點類型,以及浮點類型大小的比較限制。 這些限制是由C++標準所授權,與Microsoft實作無關。 標準中未指定內建浮點類型的絕對大小。
| 類型 | 目錄 |
|---|---|
float |
Type float 是 C++ 中最小的浮點類型。 |
double |
double 類型是大於或等於 float類型,但短於或等於 long double類型大小的浮點類型。 |
long double |
long double 類型是大於或等於 double類型的浮點類型。 |
Microsoft特定:和 long double 的double表示相同。 不過, long double 編譯程式會將 和 double 視為不同的類型。 Microsoft C++編譯程式會使用 4 和 8 位元組 IEEE-754 浮點表示法。 如需詳細資訊,請參閱 IEEE 浮點表示法。
整數類型
此 int 類型是預設的基本整數類型。 它可以代表實作特定範圍的所有整數。
帶正負號的整數表示法是可以同時保存正值和負值的整數表示法。 默認會使用,或當修飾詞關鍵詞存在時 signed 。
unsigned修飾詞關鍵詞會指定只能保存非負值的非帶正負號表示法。
大小修飾詞會以使用的整數表示法位指定寬度。 語言支援 short、 long和 long long 修飾詞。 類型 short 必須至少為16位寬。 類型 long 必須至少為32位寬。 類型 long long 必須至少為64位寬。 標準會指定整數類型之間的大小關聯性:
1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
實作必須同時維護每個類型的最小大小需求和大小關聯性。 不過,實際大小在實作之間可能會有所不同。 如需Microsoft特定實作詳細數據,請參閱 內建類型 的大小。
int指定、 signed或 大小修飾詞時unsigned,可能會省略 關鍵詞。 修飾詞和 int 類型,如果有的話,可能會依任何順序顯示。 例如, short unsigned 和 unsigned int short 參考相同的類型。
整數類型同義字
編譯程式會將下列類型的群組視為同義字:
short、 、short int、signed shortsigned short intunsigned short、unsigned short intint、 、signedsigned intunsigned、unsigned intlong、 、long int、signed longsigned long intunsigned long、unsigned long intlong long、 、long long int、signed long longsigned long long intunsigned long long、unsigned long long int
Microsoft特定 整數類型包括特定寬度 __int8、 __int16、 __int32和 __int64 類型。 這些類型可以使用 signed 和 unsigned 修飾詞。
__int8數據類型與類型同義,char與類型同義,與類型__int16short__int32同義,與類型同義,且int與類型__int64long long同義。
內建類型的大小
大部分的內建類型都有實作定義的大小。 下表列出Microsoft C++中內建類型所需的記憶體數量。 特別是, long 即使在64位操作系統上,也是4個字節。
| 類型 | 大小 |
|---|---|
bool、、charchar8_t、unsigned char、、signed char、__int8 |
1 個位元組 |
char16_t、、__int16short、unsigned short、、wchar_t、__wchar_t |
2 個位元組 |
char32_t、float、、__int32int、unsigned int、、、 longunsigned long |
4 個位元組 |
double、、 __int64、 long double、 long long、 unsigned long long |
8 個位元組 |
如需每種類型值範圍的摘要,請參閱 數據類型範圍 。
如需類型轉換的詳細資訊,請參閱 標準轉換。