C 关键词

来自cppreference.com
< c


这是 C 中保留的关键词列表。因为语言使用这些关键词,故不可重定义它们。其例外是,它们在 attribute-token 中并不被保留使用。 (C23 起)

alignas (C23)
alignof (C23)
auto
bool (C23)
break
case
char
const
constexpr (C23)
continue
default
do
double
else
enum

extern
false (C23)
float
for
goto
if
inline (C99)
int
long
nullptr (C23)
register
restrict (C99)
return
short
signed

sizeof
static
static_assert (C23)
struct
switch
thread_local (C23)
true (C23)
typedef
typeof (C23)
typeof_unqual (C23)
union
unsigned
void
volatile
while

_Alignas (C11)
_Alignof (C11)
_Atomic (C11)
_BitInt (C23)
_Bool (C99)
_Complex (C99)
_Decimal128 (C23)
_Decimal32 (C23)
_Decimal64 (C23)
_Generic (C11)
_Imaginary (C99)
_Noreturn (C11)
_Static_assert (C11)
_Thread_local (C11)

最常见的以下划线开头的关键词通常通过其便利宏来使用:

关键词 用作 定义于
_Alignas (C11) alignas (C23 中移除) stdalign.h
_Alignof (C11) alignof (C23 中移除) stdalign.h
_Atomic (C11) atomic_bool, atomic_int, ... stdatomic.h
_BitInt (C23) (无宏)
_Bool (C99) bool (C23 中移除) stdbool.h
_Complex (C99) complex complex.h
_Decimal128 (C23) (无宏)
_Decimal32 (C23) (无宏)
_Decimal64 (C23) (无宏)
_Generic (C11) (无宏)
_Imaginary (C99) imaginary complex.h
_Noreturn (C11) noreturn stdnoreturn.h
_Static_assert (C11) static_assert (C23 中移除) assert.h
_Thread_local (C11) thread_local (C23 中移除) threads.h

而且,每个以双下划线 __ 或单下划线 _ 后随大写字母为首的名称都是受保留的:细节参阅标识符

注意合字符 <%%><::>%: 以及 %:%: 提供表示标准记号的代用表示法

下列记号在用于预处理器指令语境之内时,为预处理器所识别:

if
elif
else
endif

ifdef
ifndef
elifdef (C23 起)
elifndef (C23 起)
define
undef

include
embed (C23)
line
error
warning (C23)
pragma

defined
__has_include (C23)
__has_embed (C23)
__has_c_attribute (C23)

下列记号用于预处理器指令的语境之外时,为预处理器所识别:

_Pragma(C99)

下列的额外关键词被分类为扩展,而且为条件性支持:

asm
fortran

引用

  • C17 标准(ISO/IEC 9899:2018):
  • 6.4.1 Keywords (第 42-43 页)
  • J.5.9 The fortran keyword (第 422 页)
  • J.5.10 The asm keyword (第 422 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 6.4.1 Keywords (第 58-59 页)
  • J.5.9 The fortran keyword (第 580 页)
  • J.5.10 The asm keyword (第 580 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 6.4.1 Keywords (第 50 页)
  • J.5.9 The fortran keyword (第 514 页)
  • J.5.10 The asm keyword (第 514 页)
  • C89/C90 标准(ISO/IEC 9899:1990):
  • 3.1.1 Keywords
  • G.5.9 The fortran keyword
  • G.5.10 The asm keyword

参阅