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