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 | Arquitectura | 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