_InterlockedIncrement
funzioni intrinseche
Fornire il supporto intrinseco del compilatore per la funzione InterlockedIncrement di Windows SDK Win32. Le _InterlockedIncrement
funzioni intrinseche sono specifiche di Microsoft.
Sintassi
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
);
Parametri
lpAddend
[in, out] Puntatore alla variabile da incrementare.
Valore restituito
Il valore restituito è il valore incrementato risultante.
Requisiti
Intrinsic | Architettura | Intestazione |
---|---|---|
_InterlockedIncrement , _InterlockedIncrement16 |
x86, ARM, x64, ARM64 | <intrin.h> |
_InterlockedIncrement64 |
ARM, x64, ARM64 | <intrin.h> |
_InterlockedIncrement_acq , _InterlockedIncrement_rel , _InterlockedIncrement_nf , _InterlockedIncrement16_acq , _InterlockedIncrement16_rel _InterlockedIncrement16_nf , _InterlockedIncrement64_acq , , _InterlockedIncrement64_rel _InterlockedIncrement64_nf |
ARM, ARM64 | <intrin.h> |
Osservazioni:
Ci sono diverse varianti di _InterlockedIncrement
che variano in base ai tipi di dati interessati e all'uso della semantica di acquisizione o di rilascio specifica del processore.
Mentre la funzione _InterlockedIncrement
opera su valori integer a 32 bit, _InterlockedIncrement16
opera su valori integer a 16 bit e _InterlockedIncrement64
opera su valori integer a 64 bit.
Sulle piattaforme ARM usare le funzioni intrinseche con i suffissi _acq
e _rel
per la semantica di acquisizione e di rilascio, ad esempio all'inizio e alla fine di una sezione critica. Il suffisso intrinseco con un _nf
suffisso ("nessun recinto") non funge da barriera di memoria.
La variabile a cui punta il parametro lpAddend
deve essere allineata a un limite a 32 bit; in caso contrario, questa funzione non andrà a buon fine su sistemi x86 multiprocessore e su qualsiasi sistema non x86. Per altre informazioni, vedere Align.
La funzione Win32 è dichiarata in Wdm.h
o Ntddk.h
.
Queste routine sono disponibili solo come funzioni intrinseche.
Esempio
Per un esempio di come usare _InterlockedIncrement
, vedere _InterlockedDecrement.
Vedi anche
Intrinseci del compilatore
Parole chiave
Conflitti con il compilatore x86