C语言最新标准特性演进
📚 共计 30 章节
01
C语言的诞生与C89标准
历史背景 · K&R C与ANSI C标准化 · 函数原型/void/const
C89
奠基
02
C99标准(上)
inline/restrict/_Bool/_Complex · 复合字面量 · 变长数组VLA
C99
关键字
03
C99标准(下)
指定初始化器 · //注释 · stdint.h / inttypes.h 精确宽度类型
C99
整数类型
04
C11标准(上)
多线程 <threads.h> · 原子操作 <stdatomic.h> · _Generic
C11
并发
05
C11标准(下)
匿名结构体/联合体 · static_assert · noreturn · alignas/alignof
C11
对齐
06
C17标准
缺陷修复版本 · 主要修复内容 · 与C11完全兼容
C17
维护
07
C23标准(上)
typeof / nullptr · 二进制字面量 · 数字分隔符 '
C23
新关键字
08
C23标准(中)
[[deprecated]] [[fallthrough]] [[nodiscard]] · if初始化
C23
属性
09
C23标准(下)
未初始化变量自动清零 · bool内置 · 移除K&R函数定义
C23
清理
10
标准库演进(上)
<stdbool.h> · <stdint.h> · <complex.h> 变迁
库
兼容
11
标准库演进(下)
<threads.h> 现状与局限 · <stdatomic.h> 实际应用
线程
原子
12
内存模型与并发编程
C11/C23内存模型 · 数据竞争 · happens-before关系
内存
并发
13
预处理器演进
可变参数宏 __VA_ARGS__ · __has_include · __has_c_attribute
预处理器
宏
14
类型系统演进
C89弱类型 → C23 typeof · auto类型推导
类型
推导
15
const与restrict深度解析
const语义变化 · restrict优化作用
const
restrict
16
函数声明与定义变迁
K&R风格 → 原型声明 · 移除旧式定义
函数
原型
17
数组与指针的演进
变长数组兴衰 · 数组静态下标 static
数组
指针
18
枚举与结构体增强
枚举底层类型指定 · 匿名结构体/联合体用途
枚举
结构体
19
错误处理机制
errno局限 · 静态断言 static_assert 引入
错误
断言
20
C标准与C++标准交互
兼容性变化 · 差异点分析
C/C++
兼容
21
编译器对标准支持现状
GCC · Clang · MSVC 支持程度
编译器
实践
22
嵌入式C与标准演进
嵌入式场景下各标准特性适用性
嵌入式
适用
23
安全编程与标准演进
边界检查 Annex K · _s后缀函数争议
安全
Annex K
24
代码可移植性实践
如何编写兼容多标准的C代码
可移植
兼容
25
从C89到C23迁移实战
实际项目迁移案例 · 步骤与陷阱
迁移
实战
26
C标准委员会工作流程
提案 · 投票 · 发布周期
委员会
流程
27
C语言未来展望
C2y/C2z可能特性 · 社区热点
未来
C2y
28
C vs Rust/Go/Zig
系统编程领域比较 · 优势与趋势
对比
Rust
29
经典项目中的标准运用
Linux内核 · Redis · SQLite 标准选择
开源
实践
30
总结与学习路径
系统学习C标准演进 · 推荐资源与工具
总结
路线