命名空间
变体
操作

ATOMIC_VAR_INIT

来自 cppreference.cn
< c‎ | atomic
在头文件 <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)

[编辑] 另请参阅

初始化新的 atomic_flag
(宏常量) [编辑]
C++ 文档,关于 ATOMIC_VAR_INIT