非常教程

C参考手册

原子操作 | Atomic operations

ATOMIC_VAR_INIT

在头文件<stdatomic.h>中定义

#define ATOMIC_VAR_INIT(值)/ * unspecified * /

(自C11以来)

扩展为一个表达式,可以用来初始化一个与之类型相同的原子变量value。未使用此宏初始化的自动存储持续时间的原子对象的初始值未定义。但是,静态和线程局部变量的默认(零)初始化会生成有效值。

如果这个宏不用于初始化一个原子变量,那么在从另一个线程初始化(即使通过一个原子操作)期间,任何访问都是数据竞争(如果地址通过memory_order_relaxed操作立即传递给另一个线程,则可能发生)。

参考

  • C11标准(ISO/IEC 9899:2011):
    • 7.17.2.1 ATOMIC_VAR_INIT宏(p: 274)

另请参阅

ATOMIC_FLAG_INIT(C11)

初始化一个新的atomic_flag(宏常量)

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。