ATOMIC_VAR_INIT
From cppreference.net
Concurrency support library
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<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 宏 (页: 274)
参见
|
(C11)
|
初始化新的
atomic_flag
(宏常量) |
|
C++ 文档
关于
ATOMIC_VAR_INIT
|
|