Aracılığıyla paylaş


İç işlevleri _InterlockedCompareExchangePointer

Microsoft'a Özgü

ve Destination adresi eşitse Comparand adresi adreste Destination depolayan Exchange atomik bir işlem gerçekleştirir.

Sözdizimi

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
);
void * _InterlockedCompareExchangePointer_rel (
   void * volatile * Destination,
   void * Exchange,
   void * Comparand
);

Parametreler

Hedef
[in, out] Hedef değerin işaretçisine işaret eden işaretçi. İşaret yoksayılır.

Exchange
[in] Exchange işaretçisi. İşaret yoksayılır.

Comparand
[in] Hedefle karşılaştıracak işaretçi. İşaret yoksayılır.

Dönüş değeri

Dönüş değeri hedefin ilk değeridir.

Gereksinimler

Içsel Mimari Üst bilgi
_InterlockedCompareExchangePointer x86, ARM, x64, ARM64 <intrin.h>
_InterlockedCompareExchangePointer_acq, _InterlockedCompareExchangePointer_nf, _InterlockedCompareExchangePointer_rel ARM, ARM64 <iiintrin.h>
_InterlockedCompareExchangePointer_HLEAcquire, _InterlockedCompareExchangePointer_HLERelease x86, x64 <immintrin.h>

Açıklamalar

_InterlockedCompareExchangePointer adresin adresle atomik karşılaştırmasını DestinationComparand gerçekleştirir. Destination Adres adrese Comparand eşitse, Exchange adres tarafından Destinationbelirtilen adreste depolanır. Aksi takdirde hiçbir işlem gerçekleştirilmez.

_InterlockedCompareExchangePointer Win32 Windows SDK InterlockedCompareExchangePointer işlevi için derleyici iç desteği sağlar.

nasıl kullanılacağına _InterlockedCompareExchangePointerilişkin bir örnek için bkz . _InterlockedDecrement.

ARM platformlarında, kritik bir bölümün başında ve _rel sonunda olduğu gibi alma ve yayın semantiğine ihtiyacınız varsa iç bilgileri ve sonekleri _acq kullanın. Bir ("çit yok") soneki olan _nf ARM iç bilgileri bellek engeli görevi görmez.

Bir ("ön ek yok") soneki olan _np içler, olası bir ön işlem derleyici tarafından eklenmesini engeller.

Donanım Kilidi Elision (HLE) yönergelerini destekleyen Intel platformlarında, ve _HLERelease sonekleri ile _HLEAcquire iç bilgiler, donanımda kilit yazma adımını ortadan kaldırarak performansı hızlandırabilecek işlemciye yönelik bir ipucu içerir. Bu iç öğeler HLE'yi desteklemeyen platformlarda çağrılırsa ipucu yoksayılır.

Bu yordamlar yalnızca iç yordamlar olarak kullanılabilir.

END Microsoft'a Özgü

Ayrıca bkz.

Derleyici iç bilgileri
Anahtar Sözcükler