標準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
union
unsigned
void
volatile
while
_Alignas
2, a
_Alignof
2, a
_Atomic
2, b
_Bool
1, a
_Complex
1, b
_Generic
2, a
_Imaginary
1, b
_Noreturn
2, a
_Static_assert
2, a
_Thread_local
2, b
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
dllexport
4
dllimport
4
naked
4
static_assert
6
thread
4
3 __based 關鍵字對 32 位和 64 位目標編譯的用途有限。
4 當與 __declspec 一起使用時,這些關鍵字是特殊的識別符號;它們在其他情況下的使用不受限制。
5 為了與以前的版本相容,當啟用 Microsoft 擴充套件時,這些關鍵字既可以使用兩個前導下劃線,也可以使用一個前導下劃線。
6 如果不包括
預設情況下將啟用 Microsoft 擴充套件。 為了幫助建立可移植的程式碼,可以在編譯過程中指定 /Za (禁用語言擴充套件) 選項來禁用 Microsoft 擴充套件。 如果使用此選項,將禁用某些 Microsoft 專用關鍵字。
啟用 Microsoft 擴充套件時,您可在程式中使用上面列出的關鍵字。 為了符合標準,這些關鍵字大多使用前導雙下劃線。 dllexport、dllimport、naked 和 thread 這 4 個關鍵字除外,它們只與 __declspec 一起使用,不需要前導雙下劃線。 為了向後相容,支援其餘的關鍵字的單下劃線版本。