Compartir a través de


Funciones intrínsecas _InterlockedIncrement

Proporcionan compatibilidad con intrínsecos del compilador para la función InterlockedIncrement de Windows SDK de Win32. Las funciones intrínsecas _InterlockedIncrement son específicas de Microsoft.

Sintaxis

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
);

Parámetros

lpAddend
[in, out] Puntero a la variable que se va a aumentar.

Valor devuelto

El valor devuelto es el valor incrementado resultante.

Requisitos

Intrinsic Architecture Encabezado
_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>

Comentarios

Hay diversas variaciones en _InterlockedIncrement que varían en función de los tipos de datos que implican y de si se utiliza la liberación o la adquisición de semántica específica del procesador.

Mientras que la función _InterlockedIncrement opera con valores enteros de 32 bits, _InterlockedIncrement16 opera con valores enteros de 16 bits y _InterlockedIncrement64 opera con valores enteros de 64 bits.

En plataformas ARM, utilice los intrínsecos con sufijos _acq y _rel si necesita adquirir y liberar semántica, como al principio y al final de una sección crítica. Los intrínsecos con un sufijo _nf ("sin límite") no actúan como una barrera de memoria.

La variable a la que apunta el parámetro lpAddend debe estar alineada en un límite de 32 bits; de lo contrario, esta función produce un error en sistemas x86 multiprocesadores y en sistemas que no son x86. Para más información, consulte align.

La función de Win32 se declara en Wdm.h o Ntddk.h.

Estas rutinas solo están disponibles como intrínsecos.

Ejemplo

Para un ejemplo de cómo usar _InterlockedIncrement, consulte _InterlockedDecrement.

Consulte también

Intrínsecos del compilador
Palabras clave
Conflictos con el compilador de x86