Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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