atomic_store, atomic_store_explicit
|
Definiert in Header
<stdatomic.h>
|
||
|
void
atomic_store
(
volatile
A
*
obj , C desired
)
;
|
(1) | (seit C11) |
|
void
atomic_store_explicit
(
volatile
A
*
obj, C desired,
memory_order
order
)
;
|
(2) | (seit C11) |
Ersetzt atomar den Wert der atomaren Variable, auf die
obj
zeigt, mit
desired
. Der Vorgang ist ein atomarer Schreibvorgang.
Die erste Version ordnet Speicherzugriffe gemäß
memory_order_seq_cst
, die zweite Version ordnet Speicherzugriffe gemäß
order
.
order
muss einer der folgenden Werte sein:
memory_order_relaxed
,
memory_order_release
oder
memory_order_seq_cst
. Andernfalls ist das Verhalten undefiniert.
Dies ist eine
generische Funktion
, die für alle
atomaren Objekttypen
A
definiert ist. Das Argument ist ein Zeiger auf einen flüchtigen atomaren Typ, um Adressen sowohl von nicht-flüchtigen als auch
flüchtigen
(z.B. speichergemappten E/A) atomaren Objekten zu akzeptieren, und die flüchtige Semantik wird beibehalten, wenn diese Operation auf flüchtige atomare Objekte angewendet wird.
C
ist der nicht-atomare Typ, der
A
entspricht.
Es ist nicht spezifiziert, ob der Name einer generischen Funktion ein Makro oder ein mit externer Bindung deklarierter Bezeichner ist. Wenn eine Makrodefinition unterdrückt wird, um auf eine tatsächliche Funktion zuzugreifen (z.B. durch Klammerung wie ( atomic_store ) ( ... ) ), oder ein Programm einen externen Bezeichner mit dem Namen einer generischen Funktion definiert, ist das Verhalten undefiniert.
Inhaltsverzeichnis |
Parameter
| obj | - | Zeiger auf das zu modifizierende atomare Objekt |
| order | - | die Speichersynchronisierungsreihenfolge für diesen Vorgang |
Rückgabewert
(keine)
Referenzen
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.17.7.1 Die atomic_store-Generic-Funktionen (S: 206)
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.17.7.1 Die atomic_store-Generic-Funktionen (S: 282)
Siehe auch
|
liest einen Wert aus einem atomaren Objekt
(Funktion) |
|
|
C++-Dokumentation
für
atomic_store
,
atomic_store_explicit
|
|