共用方式為


C 關鍵字

關鍵詞是對 C 編譯程式具有特殊意義的單字。 在轉譯階段 7 和 8 中,標識碼不能與 C 關鍵詞具有相同的拼字和大小寫。 如需詳細資訊,請參閱預處理器參考中的轉譯階段。 如需標識碼的詳細資訊,請參閱 標識碼

標準 C 關鍵詞

C 語言使用下列關鍵字:

auto
break
case
char
const
continue
default
do
double
else
enum

extern
float
for
goto
if
inline1,a
int
long
register
restrict1,a
return

short
signed
sizeof
static
struct
switch
typedef
typeof
typeof_unqual
union
unsigned
void
volatile

while
_Alignas2,a
_Alignof2,a
_Atomic2, b
_Bool1,a
_Complex1, b
_Generic2,a
_Imaginary1, b
_Noreturn2,a
_Static_assert2,a
_Thread_local2, b

1 ISO C99 中引進的關鍵詞。
2 ISO C11 中引進的關鍵詞。
Visual Studio 2019 16.8 版開始,指定 或 /std:c17 編譯程式選項時/std:c11,程式代碼中支持這些關鍵詞。
b 從 Visual Studio 2019 16.8 版開始,這些關鍵詞會在指定 或 /std:c17 編譯程式選項時/std:c11編譯為 C 的程式代碼中辨識,但不支援這些關鍵詞。

您無法重新定義關鍵字。 不過,您可以使用 C 預處理器指示詞來指定文字,以在編譯之前取代關鍵詞。

Microsoft 特定的 C 關鍵詞

ANSI 和 ISO C 標準允許具有兩個前置底線的標識碼保留給編譯程式實作。 Microsoft 慣例是在 Microsoft 特定關鍵詞名稱前面加上雙底線。 這些字無法當做標識碼名稱使用。 如需命名標識碼規則的描述,包括使用雙底線,請參閱 標識碼

Microsoft C 編譯器可辨識下列關鍵字和特殊識別項:

__asm5
__based3, 5
__cdecl5
__declspec5
__except5
__fastcall
__finally5

__inline5
__int165
__int325
__int645
__int85
__leave5
__restrict

__stdcall5
__try5
__typeof__
__typeof_unqual__
dllexport4
dllimport4
naked4
static_assert6
thread4

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、、、 nakeddllimportthread只能搭配 使用__declspec,而且不需要前置雙底線。 為了提供回溯相容性,仍支援其餘關鍵字的單一底線版本。

另請參閱

C 的元素