ATOMIC_VAR_INIT
来自 cppreference.com
定义在头文件 <stdatomic.h> 中 |
||
#define ATOMIC_VAR_INIT(value) /* unspecified */ |
(自 C11 起) (在 C17 中已弃用) (在 C23 中已删除) |
|
展开为一个表达式,该表达式可用于初始化与 value
类型相同的原子变量。
未显式初始化的自动存储持续时间的原子对象的初始值是不确定的。但是,静态和线程本地变量的默认(零)初始化会生成有效的值。
初始化原子变量时,任何并发访问(即使通过原子操作)都是数据竞争(如果地址立即通过 memory_order_relaxed 操作传递给另一个线程,则可能会发生这种情况)。
内容 |
[编辑] 注释
此宏是 C11 原子类型早期草案设计的一部分。它在 C11 中不需要,并且在 C17 中已弃用,并在 C23 中已删除。
[编辑] 缺陷报告
以下行为更改缺陷报告已追溯应用于先前发布的 C 标准。
DR | 应用于 | 已发布的行为 | 正确的行为 |
---|---|---|---|
DR 485 | C11 | 该规范冗余且与核心语言矛盾 | 已修复 |
[编辑] 参考
- C17 标准 (ISO/IEC 9899:2018)
- 7.17.2.1 ATOMIC_VAR_INIT 宏 (p: 201)
- C11 标准 (ISO/IEC 9899:2011)
- 7.17.2.1 ATOMIC_VAR_INIT 宏 (p: 274)
[编辑] 另请参阅
(C11) |
初始化一个新的 atomic_flag (宏常量) |
C++ 文档 对于 ATOMIC_VAR_INIT
|