This documentation is archived and is not being maintained.

_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.

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