關鍵字 (C++)
關鍵字是具有特殊意義的預先定義保留識別項。 它們不能做為程式中的識別碼。 下列是 Microsoft C++ 的保留關鍵字。 為 C++/CX 和 C++/CLI 指定前置底線和名稱的名稱是 Microsoft 延伸模組。
標準 C++ 關鍵字
alignas
alignof
and
b
and_eq
b
asm
a
auto
bitand
b
bitor
b
bool
break
case
catch
char
char8_t
c
char16_t
char32_t
class
compl
b
concept
c
const
const_cast
consteval
c
constexpr
constinit
c
continue
co_await
c
co_return
c
co_yield
c
decltype
default
delete
do
double
dynamic_cast
else
enum
explicit
export
c
extern
false
float
for
friend
goto
if
inline
a Microsoft 特定 __asm
關鍵字會取代 C++ asm
語法。 保留 asm
以與其他 C++ 實作相容,但沒有實作。 用於 __asm
x86 目標上的內嵌元件。 Microsoft C++ 不支援其他目標的內嵌元件。
b 指定或 /Za
[停用語言延伸模組] 時 /permissive-
,擴充運算子同義字是關鍵字。 啟用 Microsoft 延伸模組時,它們不是關鍵字。
c 指定或更新版本 /std:c++20
時支援 (例如 /std:c++latest
) 。
Microsoft 特定的 C++ 關鍵字
在 C++ 中,包含兩個連續底線的識別碼會保留給編譯器實作。 Microsoft 慣例在 Microsoft 特定關鍵字前面加上雙底線。 這些字無法當做識別碼名稱使用。
Microsoft 擴充功能預設為啟用。 若要確保您的程式完全可移植,您可以在編譯期間指定 /permissive-
或 /Za
(停用語言延伸模組) 選項來停用 Microsoft 延伸模組。 這些選項會停用某些 Microsoft 特定的關鍵字。
啟用 Microsoft 擴充功能後,您可以在程式中使用 Microsoft 專有的關鍵字。 針對 ANSI 一致性,這些關鍵字前面會加上雙底線。 為了回溯相容性,支援許多雙底線關鍵字的單一底線版本。 關鍵字 __cdecl
沒有前置底線可用。
關鍵字 __asm
會取代 C++ asm
語法。 保留 asm
以與其他 C++ 實作相容,但沒有實作。 使用 __asm
。
關鍵字 __based
對 32 位和 64 位目標編譯的使用有限。
__alignof
e
__asm
e
__assume
e
__based
e
__cdecl
e
__declspec
e
__event
__except
e
__fastcall
e
__finally
e
__forceinline
e
__hook
日
__if_exists
__if_not_exists
__inline
e
__int16
e
__int32
e
__int64
e
__int8
e
__interface
__leave
e
__m128
d 事件處理中使用的內建函式。
e 為了與舊版的回溯相容性,這些關鍵字可在啟用 Microsoft 延伸模組時,同時提供兩個前置底線和單一前置底線(預設值)。
__declspec 修飾詞中的 Microsoft 關鍵字
這些識別碼是修飾詞的 __declspec
擴充屬性。 這些關鍵字會視為該內容中的關鍵字。
C++/CLI 和 C++/CX 關鍵字
__abstract
f
__box
f
__delegate
f
__gc
f
__identifier
__nogc
f
__noop
__pin
f
__property
f
__sealed
f
f 僅適用于 C++ 的 Managed 擴充功能。 這個語法現在不建議使用。 如需詳細資訊,請參閱 Component Extensions for Runtime Platforms。
g 適用于 C++/CLI。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應