_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