C 关键词

来自cppreference.com
< c

这是 C 中保留的关键词列表。因为语言使用这些关键词,故不可重定义它们。

auto
break
case
char
const
continue
default
do
double
else
enum
extern

float
for
goto
if
inline (C99 起)
int
long
register
restrict (C99 起)
return
short

signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while

_Alignas (C11 起)
_Alignof (C11 起)
_Atomic (C11 起)
_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 stdalign.h
_Alignof (C11 起) alignof stdalign.h
_Atomic (C11 起) atomic_bool. atomic_int, ... stdatomic.h
_Bool (C99 起) bool 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 assert.h
_Thread_local (C11 起) thread_local threads.h

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

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

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

if
elif
else
endif

ifdef
ifndef
define
undef

include
line
error
pragma

defined
__has_c_attribute(C23 起)

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

_Pragma(C99 起)

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

asm
fortran

引用

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

参阅