_InterlockedExchangeAdd systeminterne Funktionen
[Diese Dokumentation ist nur eine Vorschau und wird in späteren Versionen ggf. geändert. Blank topics are included as placeholders.]
Microsoft-spezifisch
Gewähren Sie systeminterne Unterstützung für die Win32-Funktion Windows SDK _InterlockedExchangeAdd systeminterne Funktionen .
long _InterlockedExchangeAdd(
long volatile * Addend,
long Value
);
long _InterlockedExchangeAdd_acq(
long volatile * Addend,
long Value
);
long _InterlockedExchangeAdd_rel(
long volatile * Addend,
long Value
);
__int64 _InterlockedExchangeAdd64(
__int64 volatile * Addend,
__int64 Value
);
__int64 _InterlockedExchangeAdd64_acq(
__int64 volatile * Addend,
__int64 Value
);
__int64 _InterlockedExchangeAdd64_rel(
__int64 volatile * Addend,
__int64 Value
);
Parameter
[in, out] Addend
Der hinzuzufügende Wert zu. ersetzt durch das Ergebnis der Addition.[in] Value
Der hinzuzufügende Wert.
Rückgabewert
Der Rückgabewert ist der Anfangswert der Variablen, die von dem Addend-Parameter dargestellt wird.
Anforderungen
Intrinsisch |
Architektur |
---|---|
_InterlockedExchangeAdd |
x86, IPF, x64 |
_InterlockedExchangeAdd_acq |
IPF |
_InterlockedExchangeAdd_rel |
IPF |
_InterlockedExchangeAdd64 |
IPF, x64 |
_InterlockedExchangeAdd64_acq |
IPF |
_InterlockedExchangeAdd64_rel |
IPF |
Headerdatei <intrin.h>
Hinweise
Es gibt mehrere Varianten _InterlockedExchangeAdd , die auf Grundlage der Datentypen unterscheiden, die sie enthalten, und ob prozessorspezifisch abrufen, um Ihnen oder Semantik verwendet wird.
Während die _InterlockedExchangeAdd-Funktion an 32-Bit-Ganzzahlwerte auswirkt, können _InterlockedExchangeAdd64 an 64-Bit-Ganzzahlwerte ausgeführt werden.
Die _InterlockedExchangeAdd_acq und _InterlockedExchangeAdd64_acq systeminternen Funktionen sind identisch, mit denen die entsprechenden Aufgaben ohne das Suffix _acq Ausnahme, dass der Vorgang mit abrufen Semantik wahrgenommen wird, ist nützlich, wenn Sie einen kritischen Abschnitt eintritt.
Es gibt keine Version dieser Funktion, dass Semantik Version verwendet.
Diese Funktionen verhalten sich als Schreib-Lesespeicher-Barrieren. Weitere Informationen finden Sie unter _ReadWriteBarrier.
Diese Routinen sind als systeminterne Funktionen nur verfügbar. Deshalb sind sie direkt, ob /Oi oder #pragma systemintern verwendet wird. Es ist nicht möglich, #pragma Funktion für diese systeminternen Funktionen zu verwenden.
Beispiel
Ein Beispiel dafür, wie _InterlockedExchangeAddfinden Sie unter _InterlockedDecrementverwendet.
Siehe auch
Referenz
Systeminterne Funktionen des Compilers