Sdílet prostřednictvím


_InterlockedCompareExchangePointer vnitřní funkce

Specifické pro Microsoft

Provede atomická operace, které jsou uloženy Exchange adresa v Destination adresa, pokud Comparand a Destination adresu jsou stejné.

void * _InterlockedCompareExchangePointer (    void * volatile * Destination,    void * Exchange,    void * Comparand ); void * _InterlockedCompareExchangePointer_acq (    void * volatile * Destination,    void * Exchange,    void * Comparand ); void * _InterlockedCompareExchangePointer_HLEAcquire (    void * volatile * Destination,    void * Exchange,    void * Comparand ); void * _InterlockedCompareExchangePointer_HLERelease (    void * volatile * Destination,    void * Exchange,    void * Comparand ); void * _InterlockedCompareExchangePointer_nf (    void * volatile * Destination,    void * Exchange,    void * Comparand ); void * _InterlockedCompareExchangePointer_np (    void * volatile * Destination,    void * Exchange,    void * Comparand ); long _InterlockedCompareExchangePointer_rel (    void * volatile * Destination,    void * Exchange,    void * Comparand );

Parametry

  • [ve out]Destination
    Ukazatel na ukazatel na cílové hodnoty.Znaménko je ignorován.

  • [v]Exchange
    Ukazatel Exchange.Znaménko je ignorován.

  • [v]Comparand
    Ukazatel k porovnání do cílového umístění.Znaménko je ignorován.

Vrácená hodnota

Vrácená hodnota je počáteční hodnota cílového pole.

Požadavky

Vnitřní

Architektura

Záhlaví

_InterlockedCompareExchangePointer

x 86, ARM,x64

< intrin.h >

_InterlockedCompareExchangePointer_acq, _InterlockedCompareExchangePointer_nf, _InterlockedCompareExchangePointer_rel

ARM

< iiintrin.h >

_InterlockedCompareExchangePointer_HLEAcquire, _InterlockedCompareExchangePointer_HLERelease

x 86x64

< immintrin.h >

Poznámky

_InterlockedCompareExchangePointerprovede atomické porovnání Destination adresu se Comparand adresa.Pokud Destination adresa je rovna Comparand adresu, Exchange adresa je uložena v adresu určenou parametrem Destination.V opačném případě je provedena žádná operace.

_InterlockedCompareExchangePointer provides compiler intrinsic support for the Win32 Windows SDK _InterlockedCompareExchangePointer function.

Příklad použití _InterlockedCompareExchangePointer, naleznete v části _InterlockedDecrement.

Na platformách ARM, použijte vnitřní objekty s _acq a _rel přípony, pokud potřebujete získat 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.

Vnitřní objekty s _np příponu ("žádné předběžné") zabraňují možný předběžné operace bude vložen překladačem.

Na platformách 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 se nazývají na platformách, 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

Klíčová slova jazyka C++