atomic_fetch_and_explicit

atomic_fetch_and, atomic_fetch_and_explicit

在头文件中定义
C atomic_fetch_and(volatile A * obj,M arg);(1)(自C11以来)
C atomic_fetch_and_explicit(volatile A * obj,M arg,memory_order order);(2)(自C11以来)

obj原来的值替换为旧值与obj和之间的按位AND结果arg,并返回obj先前保存的值。操作是读取 - 修改 - 写入操作。第一个版本根据命令对内存进行访问memory_order_seq_cst,第二个版本根据内存访问内存访问order

这是为所有原子对象类型定义的通用函数A。该参数是指向易失性原子类型的指针,以接受非易失性和易失性(例如内存映射I/O)原子变量的地址。M或者是对应于非原子类型A,如果A是原子整数类型,或者ptrdiff_t如果A是原子指针类型。

参数

obj-指向要修改的原子对象的指针
arg-与存储在原子对象中的值按位与值的值
order-此操作的存储器合并排序:所有值都是允许的

返回值

之前保存的值是指向的原子对象obj

参考

  • C11标准(ISO/IEC 9899:2011):

另请参阅

atomic_fetch_oratomic_fetch_or_explicit(C11)原子逻辑OR(功能)
atomic_fetch_xoratomic_fetch_xor_explicit(C11)原子逻辑异或(功能)

| 用于atomic_fetch_and和atomic_fetch_and_explicit的C ++文档 |