Función InterlockedDecrement (winnt.h)

Disminuye (disminuye en uno) el valor de la variable de 32 bits especificada como una operación atómica.

Para funcionar en valores de 64 bits, use la función InterlockedDecrement64 .

Sintaxis

LONG InterlockedDecrement(
  [in, out] LONG volatile *Addend
);

Parámetros

[in, out] Addend

Puntero a la variable que se va a disminuir.

Valor devuelto

La función devuelve el valor decrementado resultante.

Comentarios

La variable a la que apunta el parámetro Addend debe estar alineada en un límite de 32 bits; de lo contrario, esta función se comportará de forma impredecible en sistemas x86 multiprocesador y en cualquier sistema que no sea x86. Consulte _aligned_malloc.

Las funciones interbloqueadas proporcionan un mecanismo sencillo para sincronizar el acceso a una variable compartida por varios subprocesos. Esta función es atómica con respecto a las llamadas a otras funciones interbloqueadas.

Esta función se implementa mediante un intrínseco del compilador siempre que sea posible. Para obtener más información, vea el archivo de encabezado WinBase.h y _InterlockedDecrement.

Esta función genera una barrera de memoria completa (o cerca) para asegurarse de que las operaciones de memoria se completan en orden.

Sistemas basados en Itanium: En el caso de las aplicaciones críticas para el rendimiento, use InterlockedDecrementAcquire o InterlockedDecrementRelease en su lugar.

Nota Esta función se admite en sistemas basados en Windows RT.
 

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winnt.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

Acceso a variables interbloqueados

InterlockedDecrement16

InterlockedDecrement16Acquire

InterlockedDecrement16NoFence

InterlockedDecrement16Release

InterlockedDecrement64

InterlockedDecrementAcquire

InterlockedDecrementAcquire64

InterlockedDecrementNoFence

InterlockedDecrementNoFence64

InterlockedDecrementRelease

InterlockedDecrementRelease64

InterlockedIncrement

Funciones de sincronización