C 对象 (Object)(初步)
1. 概念
执行环境中数据 (Data) 存储 的一个区域,其内容可以表示值 (Value)
2. 用声明 (Declaration) 创建对象
声明是一种引入一个或多个标识符 (Identifier) 到程序中,并指定其含义及属性的 C 语言构造。 最简单的声明包括两部分:类型说明符 (Type Specifier) 和 标识符
c
int a; // "int"是类型说明符,"a"是标识符
相同类型的对象可以在一起声明:类型说明符 标识符 1, 标识符 2, 标识符 3, ... , 标识符 n;
但不推荐这种做法,尤其是类型较复杂时
c
int a, b, c; // 声明三个 int 类型的对象
3. 初始化 (Initialization)
对象声明可以通过名为初始化的步骤提供其初始值
c
int a = 3;
int a = {3}; // 可选地用花括号环绕
int a = {}; // C23 起
4. 标识符和关键字 (Keyword)
4.1 标识符
- 标识符是字符序列 (Character Sequence),可以指代一个实体(对象,函数,宏等)
- 有些标识符叫保留标识符,不能声明这类标识符,否则是未定义行为 (Undefined Behavior, UB)
- 作为关键字的标识符
- 以一个下划线开始的具有外部链接的标识符
- 所有以一个下划线后随一个大写字母或另一下划线开始的标识符,如
_Mdr
__mdr
- 标准库所定义的所有外部标识符
4.2 关键字
- 类型:
_Bool(bool)
char
double
float
int
long
short
signed
unsigned
void
_Complex
_Decimal32
_Decimal64
_Decimal128
_Imaginary
_BitInt
- 指定符和限定符:
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 链接如下: