这是一份关于核心 C 语言构造的参考。
基本概念
注释 ASCII 码表 字符集与编码 翻译阶段 标点 标识符 - 作用域 - 生存期 查找与命名空间 类型 - 算术类型 对象与对齐 main 函数 “如同”规则 未定义行为 内存模型与数据竞争
main
关键词
预处理器
#if - #ifdef - #ifndef - #elif #elifdef - #elifndef (C23) #define - # - ## #include - #pragma #line - #error #warning (C23) - #embed (C23)
#if
#ifdef
#ifndef
#elif
#elifdef
#elifndef
#define
#
##
#include
#pragma
#line
#error
#warning
#embed
语句
if - switch for while - do-while continue - break goto - return
if
switch
for
while
do
continue
break
goto
return
表达式
值类别 求值顺序与定序 常量及字面量 整数常量 浮点数常量 字符常量 true/false (C23) nullptr (C23) 字符串字面量 复合字面量 (C99) 常量表达式 隐式转换 运算符 成员访问与间接 逻辑 - 比较 算术 - 赋值 自增与自减 调用、逗号、三元 sizeof - alignof (C11) 转型运算符 运算符优先级 泛型选择 (C11)
true
false
nullptr
sizeof
alignof
初始化
标量 数组 结构体/联合体
声明
指针 - 数组 枚举 存储期与链接 const - volatile - restrict (C99) struct - union - 位域 alignas (C11) - typedef static_assert (C11) 原子类型 (C11) 外部及试探性定义 属性 (C23)
const
volatile
restrict
struct
union
alignas
typedef
static_assert
函数
函数声明 函数定义 inline (C99) _Noreturn (C11)(C23 弃用) 可变参数
inline
_Noreturn
杂项
C 的历史 遵从性 内联汇编 信号处理 可分析性 (C11)