?
? ????? PHP ??? ???? ??? ?? ??
在頭文件<stdatomic.h>中定義 | ||
---|---|---|
C atomic_fetch_or(volatile A * obj,M arg); | (1) | (自C11以來(lái)) |
C atomic_fetch_or_explicit(volatile A * obj,M arg,memory_order order); | (2) | (自C11以來(lái)) |
將obj
原來(lái)的值替換為舊值與obj
和之間的按位或結(jié)果arg
,并返回obj
先前保存的值。操作是讀取 - 修改 - 寫(xiě)入操作。第一個(gè)版本根據(jù)命令對(duì)內(nèi)存進(jìn)行訪(fǎng)問(wèn)memory_order_seq_cst
,第二個(gè)版本根據(jù)內(nèi)存訪(fǎng)問(wèn)內(nèi)存訪(fǎng)問(wèn)order
。
這是為所有原子對(duì)象類(lèi)型定義的通用函數(shù)A
。該參數(shù)是指向易失性原子類(lèi)型的指針,以接受非易失性和易失性(例如內(nèi)存映射I/O)原子變量的地址。M
或者是對(duì)應(yīng)于非原子類(lèi)型A
,如果A
是原子整數(shù)類(lèi)型,或者ptrdiff_t
如果A
是原子指針類(lèi)型。
obj | - | 指向要修改的原子對(duì)象的指針 |
---|---|---|
arg | - | 按位或值存儲(chǔ)在原子對(duì)象中的值 |
order | - | 此操作的內(nèi)存同步排序:所有值都是允許的 |
之前保存的值是指向的原子對(duì)象obj
。
C11標(biāo)準(zhǔn)(ISO/IEC 9899:2011):
7.17.7.5 atomic_fetch和修改泛型函數(shù)(p: 284-285)
atomic_fetch_oratomic_fetch_or_explicit(C11) | 原子邏輯OR(函數(shù)) |
---|---|
atomic_fetch_xoratomic_fetch_xor_explicit(C11) | 原子邏輯異或(函數(shù)) |
| 用于atomic_fetch_or或atomic_fetch_or_explicit的C ++文檔 |