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
是否作为预定义宏实现,这是未指定的。
每个以双下划线 __
或下划线 _
后跟大写字母开头的名称都是保留的:有关详细信息,请参阅标识符。
请注意,双字符组 <%
、%>
、<:
、:>
、%:
和 %:%:
提供了一种表示标准标记的替代方法。
以下标记在预处理器指令的上下文中内使用时被预处理器识别
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++ 关键字
|