「關鍵字」是指對 C 編譯器有特殊意義的字詞。 在轉譯階段 7 和 8 中,識別項不能包含與 C 關鍵字相同的拼字和大小寫。 如需詳細資訊,請參閱前置處理器參考中的翻譯階段。 如需識別碼的詳細資訊,請參閱識別碼。
標準 C++ 關鍵字
C 語言使用下列關鍵字:
auto
break
case
char
const
continue
default
do
double
else
enum
extern
float
for
goto
if
inline
1,a
int
long
register
restrict
1,a
return
short
signed
sizeof
static
struct
switch
typedef
typeof
typeof_unqual
union
unsigned
void
volatile
1 ISO C99 中引進的關鍵字。
2 ISO C11 中引進的關鍵字。
a 從 Visual Studio 2019 16.8 版開始,當指定 /std:c11 或 /std:c17 編譯器選項時,編譯為 C 的程式碼中支援這些關鍵字。
b 從 Visual Studio 2019 16.8 版開始,當指定 /std:c11 或 /std:c17 編譯器選項時,編譯器會在編譯為 C 的程式碼中辨識這些關鍵字,但不提供支援。
您無法重新定義關鍵字。 不過,您可以在編譯前,使用 C 前置處理器指示詞指定要取代關鍵字的文字。
Microsoft 特定 C 關鍵字
ANSI 和 ISO C 標準允許保留具有兩個前置底線的識別項,供編譯器實作使用。 Microsoft 的慣例就是在 Microsoft 專有關鍵字名稱前面加上雙底線。 這些字詞不可做為識別碼名稱使用。 如需命名識別碼的規則描述,包括使用雙底線,請參閱識別碼。
Microsoft C 編譯器可辨識下列關鍵字和特殊識別項:
__asm
5
__based
3, 5
__cdecl
5
__declspec
5
__except
5
__fastcall
__finally
5
__inline
5
__int16
5
__int32
5
__int64
5
__int8
5
__leave
5
__restrict
__stdcall
5
__try
5
__typeof__
__typeof_unqual__
dllexport
4
dllimport
4
naked
4
static_assert
6
thread
4
3__based 關鍵字對 32 位元和 64 位元目標編譯的使用有限。
4 這些是搭配 __declspec 使用時的特殊識別項,在其他內容中使用則不受限制。
5 為了與舊版相容,這些關鍵字在啟用 Microsoft 擴充功能時可以使用兩個前置底線和單一前置底線。
6 如果您未包含 <assert.h>,Microsoft Visual C 編譯器會將 static_assert 對應至 C11 _Static_assert 關鍵字。
Microsoft 擴充功能預設為啟用。 為了協助建立可攜式程式碼,您可以在編譯期間指定 /Za (停用語言擴充功能) 選項來停用 Microsoft 擴充功能。 當您使用這個選項時,某些 Microsoft 專有關鍵字就會停用。
在 Microsoft 擴充功能啟用時,您可以在程式中使用上面所列的關鍵字。 為了符合語言標準,這些關鍵字大部分有前置雙底線。 這四個例外狀況 (dllexport、dllimport、naked 和 thread) 只能搭配 __declspec 使用,而不需要前置雙底線。 為了提供回溯相容性,仍支援其餘關鍵字的單一底線版本。