atomic_fetch_sub, atomic_fetch_sub_explicit
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <stdatomic.h> 中定义
|
||
C atomic_fetch_sub( volatile A* obj, M arg ); |
(1) | |
C atomic_fetch_sub_explicit( volatile A* obj, M arg, memory_order order ); |
(2) | |
原子取代所指向的数值
obj
减法的arg
的旧值obj
的结果,并返回以前举行的价值obj
。该操作是读 - 修改 - 写操作。根据memory_order_seq_cst的第一个版本订单的内存访问,第二个版本的订单内存访问,根据order
.原文:
Atomically replaces the value pointed by
obj
with the result of subtraction of arg
from the old value of obj
, and returns the value obj
held previously. The operation is read-modify-write operation. The first version orders memory accesses according to memory_order_seq_cst, the second version orders memory accesses according to order
.这是一个通用函数定义的所有原子的对象类型。
A
是一个原子对象的类型,M
非原子类型对应的A
A
是原子的整数类型,或ptrdiff_tA
是原子的指针类型.对于有符号整数类型,算术定义为使用2的补码表示。有
原文:
For signed integer types, arithmetic is defined to use two’s complement representation. There
是未定义的结果。指针类型,其结果可能是未定义的地址,但是操作,否则有未定义的行为.
原文:
are no undefined results. For pointer types, the result may be an undefined address, but the operations otherwise have no undefined behavior.
[编辑] 参数
obj | - | 指针的原子对象修改
原文: pointer to the atomic object to modify |
arg | - | 从原子对象中存储的值中减去该值
原文: the value to subtract from the value stored in the atomic object |
order | - | 内存同步进行此操作的顺序:所有的允许值
原文: the memory synchronization ordering for this operation: all values are permitted |
[编辑] 返回值
保存的值是原子对象所指向的
obj
.原文:
The value held previously be the atomic object pointed to by
obj
.[编辑] 另请参阅
原子加成 (函数) | |
C++ documentation for atomic_fetch_sub, atomic_fetch_sub_explicit
|