Compartir a través de


Funciones intrínsecas _interlockedbittestandreset

Específicos de Microsoft

Genera una instrucción que establece el bit b de la dirección a en cero y devuelve su valor original.

Sintaxis

unsigned char _interlockedbittestandreset(
   long *a,
   long b
);
unsigned char _interlockedbittestandreset_acq(
   long *a,
   long b
);
unsigned char _interlockedbittestandreset_HLEAcquire(
   long *a,
   long b
);
unsigned char _interlockedbittestandreset_HLERelease(
   long *a,
   long b
);
unsigned char _interlockedbittestandreset_nf(
   long *a,
   long b
);
unsigned char _interlockedbittestandreset_rel(
   long *a,
   long b
);
unsigned char _interlockedbittestandreset64(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandreset64_acq(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandreset64_nf(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandreset64_rel(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandreset64_HLEAcquire(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandreset64_HLERelease(
   __int64 *a,
   __int64 b
);

Parámetros

a
[in] Un puntero a la memoria que se va a examinar.

b
[in] La posición de bit que se va a probar.

Valor devuelto

El valor original del bit en la posición especificada por b.

Requisitos

Intrinsic Architecture Encabezado
_interlockedbittestandreset x86, ARM, x64, ARM64 <intrin.h>
_interlockedbittestandreset_acq, _interlockedbittestandreset_nf, _interlockedbittestandreset_rel ARM, ARM64 <intrin.h>
_interlockedbittestandreset64_acq, _interlockedbittestandreset64_nf, _interlockedbittestandreset64_rel ARM64 <intrin.h>
_interlockedbittestandreset_HLEAcquire, _interlockedbittestandreset_HLERelease x86, x64 <immintrin.h>
_interlockedbittestandreset64 x64, ARM64 <intrin.h>
_interlockedbittestandreset64_HLEAcquire, _interlockedbittestandreset64_HLERelease x64 <immintrin.h>

Comentarios

En procesadores x86 y x64, estos intrínsecos usan la instrucción lock btr, que lee y establece el bit especificado en cero en una operación atómica.

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

En las plataformas de Intel que admiten instrucciones de Elisión de bloqueo de Hardware (HLE), los intrínsecos con sufijos _HLEAcquire y _HLERelease incluyen una sugerencia para el procesador que puede acelerar el rendimiento mediante la eliminación de un paso de escritura de bloqueo en el hardware. Si se llama a estos intrínsecos en procesadores que no son compatibles con HLE, se omite la sugerencia.

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

FIN de Específicos de Microsoft

Consulte también

Intrínsecos del compilador
Conflictos con el compilador de x86