const、volatile、restrict 的语义与误区 | C语言
本章覆盖:const 表达通过特定左值不可修改;volatile 用于可能被实现之外因素改变或具有特殊副作用的访问语义;volatile 常见于内存映射 I/O、信号/中断相关对象;volatile 不提供原子性,也不是通用线程同步方案;restrict 用于表达指针别名约束并帮助优化;违反 restrict 契约可能导致未定义行为。
本章知识点
- const 表达通过特定左值不可修改
- volatile 用于可能被实现之外因素改变或具有特殊副作用的访问语义
- volatile 常见于内存映射 I/O、信号/中断相关对象
- volatile 不提供原子性,也不是通用线程同步方案
- restrict 用于表达指针别名约束并帮助优化
- 违反 restrict 契约可能导致未定义行为