Sdílet prostřednictvím


_interlockedbittestandset _interlockedbittestandset64

Specifické pro Microsoft

Generovat instrukce, která kontroluje bit b adresy a a vrátí jeho aktuální hodnotu před na hodnotu 1.

unsigned char _interlockedbittestandset(
   long *a,
   long b
);
unsigned char _interlockedbittestandset_acq(
   long *a,
   long b
);
unsigned char _interlockedbittestandset_HLEAcquire(
   long *a,
   long b
);
unsigned char _interlockedbittestandset_HLERelease(
   long *a,
   long b
);
unsigned char _interlockedbittestandset_nf(
   long *a,
   long b
);
unsigned char _interlockedbittestandset_rel(
   long *a,
   long b
);
unsigned char _interlockedbittestandset64(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandset64_HLEAcquire(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandset64_HLERelease(
   __int64 *a,
   __int64 b
);

Parametry

  • [in] a
    Ukazatel paměti k prověření.

  • [in] b
    Pozice bit k testování.

Vrácená hodnota

Hodnota bit na pozici b předtím, než je nastaven.

Požadavky

Vnitřní

Architektura

Záhlaví

_interlockedbittestandset

x 86, ARM, x64

< intrin.h >

_interlockedbittestandset_acq, _interlockedbittestandset_nf, _interlockedbittestandset_rel

ARM

< intrin.h >

_interlockedbittestandset_HLEAcquire, _interlockedbittestandset_HLERelease

x86, x64

< immintrin.h >

_interlockedbittestandset64

x64

< intrin.h >

_interlockedbittestandset64_HLEAcquire, _interlockedbittestandset64_HLERelease

x64

< immintrin.h >

Poznámky

V x 86 a x64 procesory, vnitřní tyto objekty používají lock bts pokyn ke čtení a nastaví zadaný bit na hodnotu 1.Operace je atomické.

V ARM procesorů, použijte vnitřní objekty s _acq a _rel přípony pro získání a verze sémantiku, například na začátku a na konci kritické sekce.Vnitřní ARM s _nf příponu ("žádné ohraničení") není fungovat jako překážku paměti.

Na procesory Intel, které podporují hardwaru uzamčení Elision (HLE) pokyny, vnitřní objekty s _HLEAcquire a _HLERelease přípony zahrnout nápovědu pro procesor, který mohou urychlit výkonu tím, že eliminuje krok zápisu uzamčení hardwaru.Pokud tyto vnitřní objekty jsou volány na procesory, které nepodporují HLE, je pokyn ignorován.

Tyto rutiny jsou pouze k dispozici jako vnitřní objekty.

Viz také

Referenční dokumentace

Vnitřní funkce kompilátoru

Konflikty s překladačem x86