Share via


_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

C++-Schlüsselwörter

Weitere Ressourcen

Conflicts with the x86 Compiler