关键字

关键字 是语言保留供特殊使用的标识。 虽然可以将它们用于预处理器宏名称,但它被认为是较差的编程样式。 仅保留关键字的精确拼写。 例如, auto 是保留的,但 AUTO 不是保留的。

C 和 C++ 语言的关键字

表 1. C 和 C++ 关键字
auto1
break
case
char
const
continue
default
do
double
else
enum
extern2
float
for
goto
if
int
long
register
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while
备注信息:
  1. C++11在 C++11 中,关键字 auto 不再用作存储类说明符。 相反,它用作类型说明符,可以从其初始化方法表达式的类型中推断 auto 变量的类型。
  2. 关键字 extern 先前用作存储器说明符或链接规范的一部分。 C++11 标准增加了第三个用法,即使用该关键字来指定明确的实例化声明。C++11
仅开始 C

仅适用于 C 语言的关键字

C99 和 C11 级别的标准 C 还会保留以下关键字:
表 2。 C99 和 C11 关键字
_Bool
_Complex
_generic1
_Imaginary2
内联
_Noreturn1
_Static_assert1
restrict
备注信息:
  1. C11由于 C11 语言水平有限,我们引入了这些关键词。C11
  2. 保留关键字 _Imaginary 以供将来使用。 对于复杂数字功能,请使用 _Complex; 请参阅 复杂文字 以获取详细信息。
仅结束 C
仅开始 C++

仅适用于 C++ 语言的关键字

C++ 语言还保留以下关键字:
表 3。 C++ 关键字
bool
catch
class
const_cast
集群
delete
dynamic_cast
decltype
显式
export
false
friend
inline
mutable
名称空间
新的
nullptr
操作程序
private
protected
public
re判读
static_assert
static_cast
模板

throw
true
尝试
typeid
typename
使用
virtual
wchar_t
仅结束 C++

语言扩展 (IBM 扩展) 的关键字

除了标准语言关键字外, XL C/C++ 编译器还保留以下关键字以在语言扩展中使用:
表 4。 C 和 C++ 语言扩展的关键字
__alignof
__alignof__
asm
__asm
__asm__
_attribute__
__attribute
bool (仅限 C)8
__complex__
__集群 __
_Decimal323
_Decimal643
_Decimal1283

__decltype7
__extension__
__label__
__imag__
__inline__1
无返回 (_N)6
像素8
__pixel8
__real__
__restrict
__restrict__
__signed__
__signed
__static_assert5
__volatile
__volatile __
__thread4
typeof2
__typeof__
vector8
__vector8
备注信息:
  1. 仅限 C __inline__ 关键字使用GNU C语义的内联函数。 详情请参阅内联函数的链接仅结束 C
  2. 仅限 Ctypeof 仅在 -qkeyword=typeof 生效时。仅结束 C
  3. 仅当启用了 -qdfp 时,才会识别这些关键字。
  4. 仅当启用了 -qtls 时,才会识别 __thread
  5. 仅限 C__static_assert 是C语言扩展的关键字,用于兼容 标准。 C++11仅结束 C
  6. 仅限 C + +_Noreturn 是C++语言扩展的关键字, 用于兼容 标准 C11仅限 C + +
  7. 仅限 C + +__decltype 是C++语言扩展的关键字。 它使您能够在所有语言级别中使用 C++11 decltype功能。仅限 C + +
  8. 这些关键字仅在向量声明上下文,当 已启用向量支持中识别。
仅开始 C++XL C/C++ 编译器保留以下关键字作为语言扩展,以实现与 C99 的兼容性。
表 5。 与 C99 相关的 C++ 语言扩展的关键字
_Complex
_Imaginary1

restrict
注意:
  1. 保留关键字 _Imaginary 以供将来使用。 对于复杂数字功能,请使用 _Complex; 请参阅 复杂文字 以获取详细信息。
仅结束 C++

在描述每个关键字的部分中提供了有关扩展关键字有效的编译上下文的更详细信息。