Udostępnij za pośrednictwem


_InterlockedCompareExchangePointer funkcje wewnętrzne

Specyficzne dla firmy Microsoft

Wykonuje operację częściowych, która przechowuje Exchange adres w Destination adres, jeśli Comparand i Destination adres są takie same.

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

  • [w, out]Destination
    Wskaźnik do wskaźnika do wartości docelowej.Znak jest ignorowana.

  • [w]Exchange
    Wskaźnik Exchange.Znak jest ignorowana.

  • [w]Comparand
    Wskaźnik do porównania z lokalizacji docelowej.Znak jest ignorowana.

Wartość zwracana

Zwracana wartość jest wartością początkową miejsca docelowego.

Wymagania

Wewnętrzne

Architektura

nagłówek

_InterlockedCompareExchangePointer

x 86, ARM,x64

< intrin.h >

_InterlockedCompareExchangePointer_acq, _InterlockedCompareExchangePointer_nf, _InterlockedCompareExchangePointer_rel

ARM

< iiintrin.h >

_InterlockedCompareExchangePointer_HLEAcquire, _InterlockedCompareExchangePointer_HLERelease

x 86x64

< immintrin.h >

Uwagi

_InterlockedCompareExchangePointerWykonuje porównanie częściowych Destination adres z Comparand adresu.Jeśli Destination adres jest równa Comparand adresu, Exchange adres jest przechowywany w adresie określone przez Destination.W przeciwnym razie operacja nie została wykonana.

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

Na przykład sposobów użycia _InterlockedCompareExchangePointer, zobacz _InterlockedDecrement.

Na platformach ARM, użyj intrinsics z _acq i _rel sufiksy, jeśli należy nabyć i zwolnić semantyki, takich jak na początku i na końcu sekcji krytycznych.Intrinsics ARM z _nf sufiks ("nie ogrodzenia") nie działają jako barierę pamięci.

Intrinsics z _np ("nie preselekcji") sufiks uniemożliwiają operacji możliwe preselekcji wstawiany przez kompilator.

Na platformach Intel, obsługujące instrukcje sprzętu blokady Elision (HLE), intrinsics z _HLEAcquire i _HLERelease sufiksy uwzględnić wskazówkę procesora, który może przyspieszyć wydajności eliminując blokady zapisu w danym kroku sprzętu.Jeśli te intrinsics są wywoływane na platformach, które nie obsługują HLE, wskazówka jest ignorowana.

Procedury te są dostępne tylko jako intrinsics.

Zobacz też

Informacje

Funkcje wewnętrzne kompilatora

Słowa kluczowe języka C++