Udostępnij za pośrednictwem


_InterlockedIncrement funkcje wewnętrzne

Zapewnienie wewnętrznej obsługi kompilatora dla funkcji InterlockedIncrement zestawu Sdk systemu Windows Win32. Funkcje _InterlockedIncrement wewnętrzne są specyficzne dla firmy Microsoft.

Składnia

long _InterlockedIncrement(
   long volatile * lpAddend
);
long _InterlockedIncrement_acq(
   long volatile * lpAddend
);
long _InterlockedIncrement_rel(
   long volatile * lpAddend
);
long _InterlockedIncrement_nf(
   long volatile * lpAddend
);
short _InterlockedIncrement16(
   short volatile * lpAddend
);
short _InterlockedIncrement16_acq(
   short volatile * lpAddend
);
short _InterlockedIncrement16_rel(
   short volatile * lpAddend
);
short _InterlockedIncrement16_nf (
   short volatile * lpAddend
);
__int64 _InterlockedIncrement64(
   __int64 volatile * lpAddend
);
__int64 _InterlockedIncrement64_acq(
   __int64 volatile * lpAddend
);
__int64 _InterlockedIncrement64_rel(
   __int64 volatile * lpAddend
);
__int64 _InterlockedIncrement64_nf(
   __int64 volatile * lpAddend
);

Parametry

lpAddend
[in, out] Wskaźnik do zmiennej, która ma być zwiększana.

Wartość zwracana

Zwracana wartość to wynikowa wartość przyrostowa.

Wymagania

Nieodłączny Architektura Nagłówek
_InterlockedIncrement, _InterlockedIncrement16 x86, ARM, x64, ARM64 <intrin.h>
_InterlockedIncrement64 ARM, x64, ARM64 <intrin.h>
_InterlockedIncrement_acq, _InterlockedIncrement_rel, , _InterlockedIncrement_nf, _InterlockedIncrement16_rel_InterlockedIncrement16_acq, _InterlockedIncrement16_nf, , _InterlockedIncrement64_rel_InterlockedIncrement64_acq_InterlockedIncrement64_nf ARM, ARM64 <intrin.h>

Uwagi

Istnieje kilka odmian, _InterlockedIncrement które różnią się w zależności od typów danych, które obejmują, i czy jest używana semantyka pozyskiwania lub wydawania specyficzne dla procesora.

_InterlockedIncrement Chociaż funkcja działa na 32-bitowych wartościach całkowitych, _InterlockedIncrement16 działa na 16-bitowych wartościach całkowitych i _InterlockedIncrement64 działa na 64-bitowych wartościach całkowitych.

Na platformach ARM użyj funkcji wewnętrznych i _acq _rel sufiksów, jeśli potrzebujesz semantyki uzyskiwania i wydawania, takich jak na początku i na końcu sekcji krytycznej. Sufiks wewnętrzny z sufiksem _nf ("bez ogrodzenia") nie działa jako bariera pamięci.

Zmienna wskazywana przez lpAddend parametr musi być wyrównana do granicy 32-bitowej. W przeciwnym razie ta funkcja kończy się niepowodzeniem w systemach wieloprocesorowych x86 i wszystkich systemach innych niż x86. Aby uzyskać więcej informacji, zobacz wyrównanie.

Funkcja Win32 jest zadeklarowana w elem lub Wdm.h Ntddk.h.

Te procedury są dostępne tylko jako funkcje wewnętrzne.

Przykład

Aby zapoznać się z przykładem korzystania z usługi _InterlockedIncrement, zobacz _InterlockedDecrement.

Zobacz też

Funkcje wewnętrzne kompilatora
Słowa kluczowe
Konflikty z kompilatorem x86