atomic_exchange_explicit
在头文件<stdatomic.h>中定义 | ? | ? |
---|---|---|
C原子扩展(volatile A * obj,需要C); | (1) | (自C11以来) |
C atomic_exchange_explicit(volatile A * obj,C desired,memory_order order); | (2) | (自C11以来) |
原子替换obj
with 指向的值desired
并返回obj
之前保存的值。操作是读取 - 修改 - 写入操作。第一个版本根据命令对内存进行访问memory_order_seq_cst
,第二个版本根据内存访问内存访问order
。
这是为所有原子对象类型定义的通用函数A
。该参数是指向易失性原子类型的指针,以接受非易失性和易失性(例如内存映射I/O)原子变量的地址。C
是与...相对应的非原子类型A
..
参数
obj | - | 指向要修改的原子对象的指针 |
---|---|---|
desired | - | 用来替换原子对象的值 |
order | - | 此操作的内存同步排序:所有值都是允许的 |
返回值
之前保存的值是指向的原子对象obj
。
参考
- C11标准(ISO/IEC 9899:2011):
- 7.17.7.3 atomic_exchange通用函数(p: 283)
另请参阅
atomic_compare_exchange_strongatomic_compare_exchange_strong_explicitatomic_compare_exchange_weakatomic_compare_exchange_weak_explicit (C11) | swaps a value with the an atomic object if the old value is what is expected, otherwise reads the old value (function) |
---|
| 用于atomic_exchange的C ++文档,atomic_exchange_explicit |
本文档系便宜云服务器开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com