İç 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.
Karşılaştırve
[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ı Destination
Comparand
gerçekleştirir. Destination
Adres adrese Comparand
eşitse, Exchange
adres tarafından Destination
belirtilen 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 _InterlockedCompareExchangePointer
iliş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ü