标识符
1. 标识符
- 标识符是字符序列 (Character Sequence),可以指代一个实体(对象,函数,宏等)。
- 有些标识符叫 保留标识符,不能声明这类标识符,否则是 未定义行为 (Undefined Behavior, UB):
- 作为关键字的标识符;
- 以一个下划线开始的具有 外部链接 的标识符;
- 所有以一个下划线后随一个大写字母或另一下划线开始的标识符,如
_Mdr
__mdr
; - 标准库所定义的所有外部标识符。
- 一些限制(这真的存在吗?
- 根据 内部标识符或宏名中 63 个有效起始字符,外部标识符中 31 个有效起始字符 必须可以区分两个不同的标识符;
- 一个翻译单元中最多 4095 个外部标识符;
- 一个块中最多声明 511 个拥有块作用域的标识符;
- 一个预处理翻译单元中最多同时定义 4095 个宏标识符。
2. 关键字
- 类型:
_Bool(bool)
char
double
float
int
long
short
signed
unsigned
void
_Complex
_Decimal32
_Decimal64
_Decimal128
_Imaginary
_BitInt(n)
- 指定符和限定符:
inline
restrict
_Alignas(alignas)
_Atomic
_Generic
- 常量:
true
false
nullptr
- 控制语句 相关:
break
case
continue
default
do
else
for
goto
if
return
switch
while
- 存储类 说明符:
auto
extern
register
static
constexpr
_Thread_local(thread_local)
- 运算符:
sizeof
typeof
typeof_unqual
_Alignof(alignof)
- 类型的声明:
enum
struct
union
- 类型推断:
auto
- 其他:
_Static_assert(static_assert)
typedef
本章内容对应 cppref 链接如下: