_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