C 語言關鍵字
這是 C 語言保留關鍵字的清單。由於這些關鍵字被語言本身所使用,因此無法重新定義。 例外情況是,它們在 屬性標記 (attribute-token) 中不被視為保留字(自 C23 起)
|
|
|
|
|
大多數以底線開頭的關鍵字通常透過其便利巨集使用
| 關鍵字 | 使用方式 | 定義於 |
_Alignas (C11)(C23 已棄用) |
alignas (C23 已移除) | stdalign.h
|
_Alignof (C11)(C23 已棄用) |
alignof (C23 已移除) | stdalign.h
|
_Atomic (C11) |
atomic_bool, atomic_int, ... | stdatomic.h
|
_BitInt (C23) |
(無巨集) | |
_Bool (C99)(C23 已棄用) |
bool (C23 已移除) | stdbool.h
|
_Complex (C99) |
complex | complex.h
|
_Decimal128 (C23) |
(無巨集) | |
_Decimal32 (C23) |
(無巨集) | |
_Decimal64 (C23) |
(無巨集) | |
_Generic (C11) |
(無巨集) | |
_Imaginary (C99) |
imaginary | complex.h
|
_Noreturn (C11)(C23 已棄用) |
noreturn | stdnoreturn.h
|
_Static_assert (C11)(C23 已棄用) |
static_assert (C23 已移除) | assert.h
|
_Thread_local (C11)(C23 已棄用) |
thread_local (C23 已移除) | threads.h
|
有些關鍵字已被棄用,但為了相容性目的而保留作為替代拼寫。這些關鍵字可以在原關鍵字可用的任何地方使用。
| 關鍵字 | 替代拼寫 |
alignas (C23) |
_Alignas (C11)(C23 已棄用) |
alignof (C23) |
_Alignof (C11)(C23 已棄用) |
bool (C23) |
_Bool (C99)(C23 已棄用) |
static_assert (C23) |
_Static_assert (C11)(C23 已棄用) |
thread_local (C23) |
_Thread_local (C11)(C23 已棄用) |
這些關鍵字的任何拼寫、其替代形式,或是 true 和 false 是否實作為預定義巨集,皆為未定義行為。
任何以雙底線 __ 開頭,或以底線 _ 後接大寫字母開頭的名稱皆為保留字:詳細資訊請參閱 識別碼 (identifier)。
請注意,雙元字元 (digraphs) <%, %>, <:, :>, %: 和 %:%: 提供了表示標準符號的替代方式。
當下列符號在預處理器指令的範圍內使用時,會被預處理器識別
|
defined |
當下列符號在預處理器指令的範圍外使用時,會被預處理器識別
|
_Pragma (C99) |
下列額外的關鍵字被歸類為擴充功能與條件性支援
[編輯] 參考文獻
- C23 標準 (ISO/IEC 9899:2024)
- 6.4.1 關鍵字 (p: 待定)
- J.5.9 fortran 關鍵字 (p: 待定)
- J.5.10 asm 關鍵字 (p: 待定)
- C17 標準 (ISO/IEC 9899:2018)
- 6.4.1 關鍵字 (p: 42-43)
- J.5.9 fortran 關鍵字 (p: 422)
- J.5.10 asm 關鍵字 (p: 422)
- C11 標準 (ISO/IEC 9899:2011)
- 6.4.1 關鍵字 (p: 58-59)
- J.5.9 fortran 關鍵字 (p: 580)
- J.5.10 asm 關鍵字 (p: 580)
- C99 標準 (ISO/IEC 9899:1999)
- 6.4.1 關鍵字 (p: 50)
- J.5.9 fortran 關鍵字 (p: 514)
- J.5.10 asm 關鍵字 (p: 514)
- C89/C90 標準 (ISO/IEC 9899:1990)
- 3.1.1 關鍵字
- G.5.9 fortran 關鍵字
- G.5.10 asm 關鍵字
[編輯] 參見
| C++ 文件 關於 C++ 關鍵字
|