?
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
在頭文件<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
之前保存的值。操作是讀取 - 修改 - 寫入操作。第一個版本根據(jù)命令對內(nèi)存進行訪問memory_order_seq_cst
,第二個版本根據(jù)內(nèi)存訪問內(nèi)存訪問order
。
這是為所有原子對象類型定義的通用函數(shù)A
。該參數(shù)是指向易失性原子類型的指針,以接受非易失性和易失性(例如內(nèi)存映射I/O)原子變量的地址。C
是與...相對應(yīng)的非原子類型A
..
obj | - | 指向要修改的原子對象的指針 |
---|---|---|
desired | - | 用來替換原子對象的值 |
order | - | 此操作的內(nèi)存同步排序:所有值都是允許的 |
之前保存的值是指向的原子對象obj
。
C11標(biāo)準(zhǔn)(ISO/IEC 9899:2011):
7.17.7.3 atomic_exchange通用函數(shù)(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 |