_interlockedbittestandset, _interlockedbittestandset64 

Microsoft Specific

Generate the lock_bts instruction, which examines bit b of the address a and returns its current value.

unsigned char _interlockedbittestandset(
   long *a,
   long b
unsigned char _interlockedbittestandset64(
   __int64 *a,
   __int64 b


  • [in] a
    A pointer to the memory to examine.
  • [in] b
    The bit position to test.

Return Value

The bit at the position specified.


Intrinsic Architecture


x86, x64



Header file <intrin.h>


As a result of the lock_bts instruction, the bit is set to 1. The operation is atomic.

In Visual C++ 2005, these functions behave as read-write memory barriers. For more information, see _ReadWriteBarrier.

This routine is only available as an intrinsic.

END Microsoft Specific

See Also


Compiler Intrinsics