Função InterlockedCompareExchange16 (winnt.h)
Executa uma operação atômica de comparação e troca nos valores especificados. A função compara dois valores de 16 bits especificados e troca com outro valor de 16 bits com base no resultado da comparação.
Para operar com valores de 32 bits, use a função InterlockedCompareExchange .
Para operar com valores de 64 bits, use a função InterlockedCompareExchange64 .
Para operar com valores de 128 bits, use a função InterlockedCompareExchange128 .
Sintaxe
SHORT InterlockedCompareExchange16(
[in, out] SHORT volatile *Destination,
[in] SHORT ExChange,
[in] SHORT Comperand
);
Parâmetros
[in, out] Destination
Um ponteiro para o valor de destino.
[in] ExChange
O valor de troca.
[in] Comperand
O valor a ser comparado com Destination.
Retornar valor
A função retorna o valor inicial do parâmetro Destination .
Comentários
A função compara o valor De destino com o valor Comparand . Se o valor de Destino for igual ao valor Comparand , o valor do Exchange será armazenado no endereço especificado por Destination. Caso contrário, nenhuma operação será executada.
Os parâmetros para essa função devem ser alinhados em um limite de 16 bits; caso contrário, a função se comportará de forma imprevisível em sistemas x86 multiprocessadores e em sistemas não x86. Consulte _aligned_malloc.
As funções interligadas fornecem um mecanismo simples para sincronizar o acesso a uma variável que é compartilhada por vários threads. Essa função é atômica em relação a chamadas para outras funções interligadas.
Essa função é implementada usando um compilador intrínseco sempre que possível. Para obter mais informações, consulte o arquivo de cabeçalho WinBase.h e _InterlockedCompareExchange16.
Essa função gera uma barreira de memória completa (ou cerca) para garantir que as operações de memória sejam concluídas em ordem.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2012 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winnt.h (inclua Windows.h) |
Confira também
Acesso à variável intertravada
InterlockedCompare64Exchange128
InterlockedCompareExchange16Acquire
InterlockedCompareExchange16NoFence
InterlockedCompareExchange16Release
InterlockedCompareExchangeAcquire
InterlockedCompareExchangeAcquire64
InterlockedCompareExchangeNoFence
InterlockedCompareExchangeNoFence64
InterlockedCompareExchangePointer
InterlockedCompareExchangePointerAcquire
InterlockedCompareExchangePointerNoFence
InterlockedCompareExchangePointerRelease
InterlockedCompareExchangeRelease