_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.