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
(宏常量) [edit]