共用方式為


內建類型 (C++)

內建類型(也稱為 基本型別)是由C++語言標準所指定,並內建於編譯程式中。 內建類型未定義於任何頭檔中。 內建類型分為三個主要類別: 整數浮點void。 整數類型代表整數。 浮點類型可以指定可能有小數部分的值。 編譯程式會將大部分的內建類型視為不同的類型。 不過,某些類型是 同義字,或編譯程式視為對等型別。

Void 類型

void 類型描述一組空的值。 無法指定類型 void 變數。 此 void 類型主要用於宣告不傳回任何值的函式,或宣告不具型別或任意類型數據的泛型指標。 所有運算式都可以明確轉換或轉型為類型 void。 不過,這類運算式僅限於下列用法:

  • 運算陳述式 (如需詳細資訊,請參閱 運算式。)

  • 逗號運算子的左運算元 (如需詳細資訊,請參閱 逗號運算子。)

  • 條件運算子 (? :) 的第二個或第三個運算元 (如需詳細資訊,請參閱 具有條件運算子的表達式。

std::nullptr_t

關鍵詞 nullptr 是 類型的 std::nullptr_tNull 指標常數,可轉換成任何原始指標類型。 如需詳細資訊,請參閱nullptr

布林值類型

bool 別可以有值 truefalse。 類型的大小是實作 bool 特定的。 如需Microsoft特定實作詳細數據,請參閱 內建類型 的大小。

字元類型

char 類型是字元表示類型,可有效率地編碼基本執行字元集的成員。 C++ 編譯器會將類型為 char, signed charunsigned char 的變數視為具有不同的類型。

Microsoft特定:除非/J使用編譯選項,否則類型char變數預設會升階為int從類型signed char升階為 。 在此情況下,它們會被視為類型 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特定:和 doublelong double表示相同。 不過, long double 編譯程式會將 和 double 視為不同的類型。 Microsoft C++編譯程式會使用 4 和 8 位元組 IEEE-754 浮點表示法。 如需詳細資訊,請參閱 IEEE 浮點表示法

整數類型

int 類型是預設的基本整數類型。 它可以代表實作特定範圍的所有整數。

帶正負號的整數表示法是可以同時保存正值和負值的整數表示法。 默認會使用,或當修飾詞關鍵詞存在時 signedunsigned修飾詞關鍵詞會指定只能保存非負值的非帶正負號表示法。

大小修飾詞會以使用的整數表示法位指定寬度。 語言支援 shortlonglong long 修飾詞。 類型 short 必須至少為16位寬。 類型 long 必須至少為32位寬。 類型 long long 必須至少為64位寬。 標準會指定整數類型之間的大小關聯性:

1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)

實作必須同時維護每個類型的最小大小需求和大小關聯性。 不過,實際大小在實作之間可能會有所不同。 如需Microsoft特定實作詳細數據,請參閱 內建類型 的大小。

int指定、 unsigned或 大小修飾詞時signed,可能會省略 關鍵詞。 修飾詞和 int 類型,如果有的話,可能會依任何順序顯示。 例如, short unsignedunsigned int short 參考相同的類型。

整數類型同義字

編譯程式會將下列類型的群組視為同義字:

  • short、 、 short intsigned shortsigned short int

  • unsigned short, unsigned short int

  • int、 、 signedsigned int

  • unsigned, unsigned int

  • long、 、 long intsigned longsigned long int

  • unsigned long, unsigned long int

  • long long、 、 long long intsigned long longsigned long long int

  • unsigned long long, unsigned long long int

Microsoft特定 整數類型包括特定寬度 __int8__int16__int32__int64 類型。 這些類型可以使用 signedunsigned 修飾詞。 __int8數據類型與類型同義,__int16與類型同義,與類型shortchar__int32同義,與類型同義,且__int64與類型intlong long同義。

內建類型的大小

大部分的內建類型都有實作定義的大小。 下表列出Microsoft C++中內建類型所需的記憶體數量。 特別是, long 即使在64位操作系統上,也是4個字節。

類型 大小
bool、、charchar8_tunsigned char、、signed char__int8 1 個位元組
char16_t、、__int16shortunsigned short、、wchar_t__wchar_t 2 個位元組
char32_tfloat、、int__int32unsigned int、、、 longunsigned long 4 個位元組
double、、 __int64long doublelong longunsigned long long 8 個位元組

如需每種類型值範圍的摘要,請參閱 數據類型範圍

如需類型轉換的詳細資訊,請參閱 標準轉換

另請參閱

數據類型範圍