Funzioni intrinseche _InterlockedIncrement
Sezione specifica Microsoft
Fornisce il supporto intrinseco del compilatore per la funzione Win32 Windows SDK InterlockedIncrement.
long _InterlockedIncrement(
long * lpAddend
);
long _InterlockedIncrement_acq(
long * lpAddend
);
long _InterlockedIncrement_rel(
long * lpAddend
);
long _InterlockedIncrement_nf(
long * lpAddend
);
short _InterlockedIncrement16(
short * lpAddend
);
short _InterlockedIncrement16_acq(
short * lpAddend
);
short _InterlockedIncrement16_rel(
short * lpAddend
);
short _InterlockedIncrement16_nf (
short * lpAddend
);
__int64 _InterlockedIncrement64(
__int64 * lpAddend
);
__int64 _InterlockedIncrement64_acq(
__int64 * lpAddend
);
__int64 _InterlockedIncrement64_rel(
__int64 * lpAddend
);
__int64 _InterlockedIncrement64_nf(
__int64 * lpAddend
);
Parametri
- [in, out] lpAddend
Puntatore alla variabile da incrementare.
Valore restituito
Il valore restituito è il valore incrementato risultante.
Requisiti
Funzione intrinseca |
Architettura |
Header |
---|---|---|
_InterlockedIncrement, _InterlockedIncrement16, _InterlockedIncrement64 |
x86, ARM, x64 |
<intrin.h> |
_InterlockedIncrement_acq, _InterlockedIncrement_rel, _InterlockedIncrement_nf, _InterlockedIncrement16_acq, _InterlockedIncrement16_rel, _InterlockedIncrement16_nf, _InterlockedIncrement64_acq, _InterlockedIncrement64_rel, _InterlockedIncrement64_nf |
ARM |
<intrin.h> |
Note
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. Le funzioni intrinseche con suffisso _nf ("nessun limite") non fungono 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.