Share via


_InterlockedAnd, _InterlockedAnd64

[Diese Dokumentation ist nur eine Vorschau und wird in späteren Versionen ggf. geändert. Blank topics are included as placeholders.]

Microsoft-spezifisch

Wird verwendet, um eine unteilbare AND-Operation für eine Variable durch mehrere Threads gemeinsam auszuführen.

long _InterlockedAnd(
   long volatile * value,
   long mask
);
long _InterlockedAnd_acq(
   long volatile * value,
   long mask
);
long _InterlockedAnd_rel(
   long volatile * value,
   long mask
);
char _InterlockedAnd8(
   char volatile * value,
   char mask
);
char _InterlockedAnd8_acq(
   char volatile * value,
   char mask
);
char _InterlockedAnd8_rel(
   char volatile * value,
   char mask
);
short _InterlockedAnd16(
   short volatile * value,
   short mask
);
short _InterlockedAnd16_acq(
   short volatile * value,
   short mask
);
short _InterlockedAnd16_rel(
   short volatile * value,
   short mask
);
__int64 _InterlockedAnd64(
   __int64 volatile* value,
   __int64 mask
);
__int64 _InterlockedAnd64_acq(
   __int64 volatile* value,
   __int64 mask
);
__int64 _InterlockedAnd64_rel(
   __int64 volatile* value,
   __int64 mask
);

Parameter

  • [in, out] value
    Ein Zeiger auf den ersten Operanden, durch das Ergebnis ersetzt werden.

  • [in] mask
    Der zweite Operand.

Rückgabewert

Der ursprüngliche Wert des ersten Operanden.

Anforderungen

Intrinsisch

Architektur

_InterlockedAnd

x86, IPF, x64

_InterlockedAnd_acq

IPF

_InterlockedAnd_rel

IPF

_InterlockedAnd8

x86, IPF, x64

_InterlockedAnd8_acq

IPF

_InterlockedAnd8_rel

IPF

_InterlockedAnd16

x86, IPF, x64

_InterlockedAnd16_acq

IPF

_InterlockedAnd16_rel

IPF

_InterlockedAnd64

IPF, x64

_InterlockedAnd64_acq

IPF

_InterlockedAnd64_rel

IPF

Headerdatei <intrin.h>

Hinweise

Die Zahl im Namen jeder Funktion gibt die Größe des Bits der Argumente an.

Diese Funktionen verhalten sich als Schreib-Lesespeicher-Barrieren. Weitere Informationen finden Sie unter _ReadWriteBarrier.

Das IPF-Besondere _InterlockedAnd_acq, _InterlockedAnd8_acq, _InterlockedAnd16_acqund _InterlockedAnd64_acq systeminterne Funktionen sind gleich, das 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.

_InterlockedAnd_rel, _InterlockedAnd8_rel, _InterlockedAnd16_relund _InterlockedAnd64_rel systeminterne Funktionen sind identisch, die die entsprechenden Funktionen ohne das Suffix rel Ausnahme, dass der Vorgang mit Semantik Version ausgeführt wird, die beim Suchen eines kritischen Bereich verlässt.

Beispiel

// InterlockedAnd.cpp
// Compile with: /Oi
#include <stdio.h>
#include <intrin.h>

#pragma intrinsic(_InterlockedAnd)

int main()
{
        long data1 = 0xFF00FF00;
        long data2 = 0x00FFFF00;
        long retval;
        retval = _InterlockedAnd(&data1, data2);
        printf_s("0x%x 0x%x 0x%x", data1, data2, retval); 
}
          
        

Siehe auch

Referenz

Systeminterne Funktionen des Compilers

Weitere Ressourcen

Conflicts with the x86 Compiler