atomic_fetch_add, atomic_fetch_add_explicit
来自cppreference.com
|
|
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
| 在头文件 <stdatomic.h> 中定义
|
||
| C atomic_fetch_add( volatile A* obj, M arg ); |
(1) | |
| C atomic_fetch_add_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 addition of arg to 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非原子类型对应的AA是原子的整数类型,或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 add to 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_add, atomic_fetch_add_explicit
| |