ATOMIC_VAR_INIT
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <stdatomic.h> 中定义
|
||
#define ATOMIC_VAR_INIT(value) /* unspecified */ |
(C11 起) | |
扩展到一个表达式,可以用来初始化一个原子的变量的类型相同
value
。原子对象的未初始化的自动存储时间使用这个宏的初始值是不确定的。静态线程局部变量的默认值(零)初始化产生有效的值但是.原文:
Expands to an expression that can be used to initialize an atomic variable of the same type as
value
. The initial value of atomic object of automatic storage duration that is not initialized using this macro is undefined. The default (zero) initialization of static and thread-local variables produces valid value however.如果该宏没有被用于初始化一个原子变量,从另一个线程初始化过程中的任何访问,甚至通过原子操作,是数据争用(它可能发生,如果该地址被立即传递给memory_order_relaxed操作与另一个线程)。
原文:
If this macro is not used for initialization of an atomic variable, any accesses during initialization from another thread, even through an atomic operation, is a data race (it may happen if the address is immediately passed to another thread with a memory_order_relaxed operation).
[编辑] 另请参阅
(C11) |
初始化一个新的atomic_flag (常量宏) |