C keywords
这是 C 语言中保留关键字的列表。由于这些关键字已被语言使用,因此不可被重新定义。 作为例外,在 attribute-token s 中这些关键字不被视为保留字。 (since 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
是否作为预定义宏实现,是未指定的。
每个以双下划线
__
或下划线
_
后接大写字母开头的名称均为保留标识符:详见
标识符
说明。
请注意,双字符组合
<%
、
%>
、
<:
、
:>
、
%:
和
%:%:
提供了一种
表示标准记号的可选方式
。
以下标记在预处理器指令上下文 内部 使用时会被 预处理器 识别:
|
defined
|
以下标记在预处理器指令 之外 的上下文中使用时会被预处理器识别:
|
_Pragma (C99) |
以下附加关键字被归类为扩展且受条件支持:
参考文献
- C23 标准 (ISO/IEC 9899:2024):
-
- 6.4.1 关键字 (页: 53)
-
- J.5.9 fortran 关键字 (页: 601)
-
- J.5.10 asm 关键字 (页: 601)
- 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 关键字 (页: 58-59)
-
- J.5.9 fortran 关键字 (页: 580)
-
- J.5.10 asm 关键字 (页: 580)
- C99标准(ISO/IEC 9899:1999):
-
- 6.4.1 关键字(页码:50)
-
- J.5.9 fortran关键字(页码:514)
-
- J.5.10 asm关键字(页码:514)
- C89/C90 标准 (ISO/IEC 9899:1990):
-
- 3.1.1 关键字
-
- G.5.9 fortran 关键字
-
- G.5.10 asm 关键字
参见
|
C++ documentation
for
keywords
|