ATOMIC_VAR_INIT

来自cppreference.com
< c‎ | atomic
定义于头文件 <stdatomic.h>
#define ATOMIC_VAR_INIT(value) /* unspecified */
(C11 起)

展开成能用于初始化类型同 value 的原子变量的表达式。不用此宏初始化的自动存储期原子对象的初始值未定义。不过,静态和线程局域对象的默认(零)初始化产生合法值。

若不用此宏初始化原子对象,则在初始化期间,任何来自另一线程的访问,即使通过原子操作,也是数据竞争(若立即将地址以 memory_order_relaxed 操作传递给另一线程,就可能发生)。

[编辑] 引用

  • C11 standard (ISO/IEC 9899:2011):
  • 7.17.2.1 The ATOMIC_VAR_INIT macro (p: 274)

[编辑] 参阅

初始化新的 atomic_flag
(宏常量) [编辑]