İç işlevleri _InterlockedExchangeAdd

Microsoft'a Özgü

Win32 Windows SDK'sı _InterlockedExchangeAdd iç işlevler işlevi için derleyici iç desteği sağlayın.

Sözdizimi

long _InterlockedExchangeAdd(
   long volatile * Addend,
   long Value
);
long _InterlockedExchangeAdd_acq(
   long volatile * Addend,
   long Value
);
long _InterlockedExchangeAdd_rel(
   long volatile * Addend,
   long Value
);
long _InterlockedExchangeAdd_nf(
   long volatile * Addend,
   long Value
);
long _InterlockedExchangeAdd_HLEAcquire(
   long volatile * Addend,
   long Value
);
long _InterlockedExchangeAdd_HLERelease(
   long volatile * Addend,
   long Value
);
char _InterlockedExchangeAdd8(
   char volatile * Addend,
   char Value
);
char _InterlockedExchangeAdd8_acq(
   char volatile * Addend,
   char Value
);
char _InterlockedExchangeAdd8_rel(
   char volatile * Addend,
   char Value
);
char _InterlockedExchangeAdd8_nf(
   char volatile * Addend,
   char Value
);
short _InterlockedExchangeAdd16(
   short volatile * Addend,
   short Value
);
short _InterlockedExchangeAdd16_acq(
   short volatile * Addend,
   short Value
);
short _InterlockedExchangeAdd16_rel(
   short volatile * Addend,
   short Value
);
short _InterlockedExchangeAdd16_nf(
   short volatile * Addend,
   short Value
);
__int64 _InterlockedExchangeAdd64(
   __int64 volatile * Addend,
   __int64 Value
);
__int64 _InterlockedExchangeAdd64_acq(
   __int64 volatile * Addend,
   __int64 Value
);
__int64 _InterlockedExchangeAdd64_rel(
   __int64 volatile * Addend,
   __int64 Value
);
__int64 _InterlockedExchangeAdd64_nf(
   __int64 volatile * Addend,
   __int64 Value
);
__int64 _InterlockedExchangeAdd64_HLEAcquire(
   __int64 volatile * Addend,
   __int64 Value
);
__int64 _InterlockedExchangeAdd64_HLERelease(
   __int64 volatile * Addend,
   __int64 Value
);

Parametreler

Toplanan
[in, out] Eklenecek değer; değerini toplama sonucuyla değiştirir.

Value
[in] Eklenecek değer.

Dönüş değeri

Dönüş değeri, parametresi tarafından işaret edilen değişkenin Addend ilk değeridir.

Gereksinimler

Içsel Mimari Üst bilgi
_InterlockedExchangeAdd, _InterlockedExchangeAdd8, _InterlockedExchangeAdd16 x86, ARM, x64, ARM64 <intrin.h>
_InterlockedExchangeAdd64 ARM, x64, ARM64 <intrin.h>
_InterlockedExchangeAdd_acq, _InterlockedExchangeAdd_rel, , _InterlockedExchangeAdd_nf, _InterlockedExchangeAdd8_acq, _InterlockedExchangeAdd8_rel, _InterlockedExchangeAdd8_nf, , _InterlockedExchangeAdd16_acq, _InterlockedExchangeAdd16_rel, _InterlockedExchangeAdd16_nf_InterlockedExchangeAdd64_acq, _InterlockedExchangeAdd64_rel,_InterlockedExchangeAdd64_nf ARM, ARM64 <intrin.h>
_InterlockedExchangeAdd_HLEAcquire, _InterlockedExchangeAdd_HLERelease x86, x64 <immintrin.h>
_InterlockedExchangeAdd64_HLEAcquire, _InterlockedExchangeAdd64_HLErelease x64 <immintrin.h>

Açıklamalar

İçerdikleri veri türlerine ve işlemciye özgü alma veya yayın semantiği kullanılıp kullanılmadığına bağlı olarak değişen çeşitli varyasyonlar _InterlockedExchangeAdd vardır.

_InterlockedExchangeAdd İşlev 32 bit tamsayı değerleri üzerinde çalışırken, _InterlockedExchangeAdd8 8 bit tamsayı değerlerinde_InterlockedExchangeAdd16, 16 bit tamsayı değerlerinde ve _InterlockedExchangeAdd64 64 bit tamsayı değerlerinde çalışır.

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. ("Çit yok") soneki olan _nf iç bileşenler bir bellek engeli görevi görmez.

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. /Oi veya #pragma iç kullanıldığında bile bunlar içseldir. Bu iç bilgilerde #pragma işlevi kullanmak mümkün değildir.

Örnek

kullanma _InterlockedExchangeAddörneği için bkz . _InterlockedDecrement.

END Microsoft'a Özgü

Ayrıca bkz.

Derleyici iç bilgileri
Anahtar Sözcükler
x86 Derleyicisi ile Çakışma