ATOMIC_VAR_INIT
来自 cppreference.cn
在头文件 <stdatomic.h> 中定义 |
||
#define ATOMIC_VAR_INIT(value) /* 未指定 */ |
(C11 起) (在 C17 中已废弃) (C23 中已移除) |
|
展开为一个表达式,可用于初始化与 `value` 类型相同的原子变量。
未显式初始化的自动存储期原子对象的初始值是不确定的。然而,静态和线程局部变量的默认(零)初始化会产生一个有效值。
初始化原子变量时,任何并发访问,即使通过原子操作,都是数据竞争(如果地址立即通过 memory_order_relaxed 操作传递给另一个线程,则可能会发生)。
目录 |
[编辑] 注意
此宏是 C11 原子类型早期草案设计的一部分。在 C11 中不再需要它,并在 C17 中被废弃,在 C23 中被移除。
[编辑] 缺陷报告
以下行为改变的缺陷报告被追溯地应用于以前发布的 C 标准。
缺陷报告 | 应用于 | 发布时的行为 | 正确的行为 |
---|---|---|---|
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
|