atomic_fetch_add, atomic_fetch_add_explicit
来自cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <stdatomic.h>
|
||
| C atomic_fetch_add( volatile A* obj, M arg ); |
(1) | (C11 起) |
| C atomic_fetch_add_explicit( volatile A* obj, M arg, memory_order order ); |
(2) | (C11 起) |
原子取代的值指出通过
obj添加arg的旧值obj的结果,并返回先前持有的值obj。该操作是读 - 修改 - 写操作。根据memory_order_seq_cst的第一个版本订单的内存访问,第二个版本的订单内存访问,根据order.Original:
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.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
这是一个通用函数定义的所有原子的对象类型。
A是一个原子对象的类型,M非原子类型对应的AA是原子的整数类型,或ptrdiff_tA是原子的指针类型.Original:
This is a 通用函数 defined for all atomic object types.
A is the type of an atomic object, M is either the non-atomic type corresponding to A if A is atomic integer type, or ptrdiff_t if A is atomic pointer type.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
对于有符号整数类型,算术定义为使用2的补码表示。有
Original:
For signed integer types, arithmetic is defined to use two’s complement representation. There
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
是未定义的结果。指针类型,其结果可能是未定义的地址,但是操作,否则有未定义的行为.
Original:
are no undefined results. For pointer types, the result may be an undefined address, but the operations otherwise have no undefined behavior.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 参数
| obj | - | 指针的原子对象修改
Original: pointer to the atomic object to modify The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| arg | - | 的值添加到原子对象中存储的值
Original: the value to add to the value stored in the atomic object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| order | - | 内存同步进行此操作的顺序:所有的允许值
Original: the memory synchronization ordering for this operation: all values are permitted The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[编辑] 返回值
保存的值是原子对象所指向的
obj.Original:
The value held previously be the atomic object pointed to by
obj.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 另请参阅
| 原子减法 Original: atomic subtraction The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (函数) | |
| C++ documentation for atomic_fetch_add, atomic_fetch_add_explicit
| |