Share via


Función InterlockedCompareExchange16 (winnt.h)

Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 16 bits especificados e intercambia con otro valor de 16 bits en función del resultado de la comparación.

Para funcionar en valores de 32 bits, use la función InterlockedCompareExchange .

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

Para funcionar en valores de 128 bits, use la función InterlockedCompareExchange128 .

Sintaxis

SHORT InterlockedCompareExchange16(
  [in, out] SHORT volatile *Destination,
  [in]      SHORT          ExChange,
  [in]      SHORT          Comperand
);

Parámetros

[in, out] Destination

Puntero al valor de destino.

[in] ExChange

Valor de intercambio.

[in] Comperand

Valor que se va a comparar con Destination.

Valor devuelto

La función devuelve el valor inicial del parámetro Destination .

Comentarios

La función compara el valor De destino con el valor Comparand . Si el valor De destino es igual al valor Comparand , el valor de Exchange se almacena en la dirección especificada por Destination. De lo contrario, no se realiza ninguna operación.

Los parámetros de esta función deben alinearse en un límite de 16 bits; de lo contrario, la 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 _InterlockedCompareExchange16.

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

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winnt.h (incluya Windows.h)

Consulte también

Acceso a variables interbloqueados

InterlockedCompare64Exchange128

InterlockedCompareExchange

InterlockedCompareExchange128

InterlockedCompareExchange16Acquire

InterlockedCompareExchange16NoFence

InterlockedCompareExchange16Release

InterlockedCompareExchange64

InterlockedCompareExchangeAcquire

InterlockedCompareExchangeAcquire64

InterlockedCompareExchangeNoFence

InterlockedCompareExchangeNoFence64

InterlockedCompareExchangePointer

InterlockedCompareExchangePointerAcquire

InterlockedCompareExchangePointerNoFence

InterlockedCompareExchangePointerRelease

InterlockedCompareExchangeRelease

InterlockedCompareExchangeRelease64

Funciones de sincronización