命名空间
变体
操作

C 关键字

来自 cppreference.com
< c

这是一个 C 语言中保留关键字的列表。由于它们被语言使用,这些关键字不可重新定义。 作为例外,它们在 属性标记s(自 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

[编辑] 参考文献

  • C23 标准 (ISO/IEC 9899:2024)
  • 6.4.1 关键字 (p: TBD)
  • J.5.9 fortran 关键字 (p: TBD)
  • J.5.10 asm 关键字 (p: TBD)
  • 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++ 关键字