内部与-安全操作
_InterlockedAnd
_InterlockedOr
在 VS2010 中,在x86 x64编译模式下 ,
InterlockedAnd 与_InterlockedAnd 的使用问题
InterlockedAnd 在 x86模式下无法编译通过 ,而在 x64模式下可以编译通过。
_InterlockedAnd 在 x86/ x64模式下都可以顺利编译通过。
#include <stdio.h>
#include <intrin.h>
//#pragma intrinsic(_InterlockedAnd)
int main()
{
long data1 = 0xFF00FF00;
long data2 = 0x10FFFF00;
long retval;
int aa=0;
//retval = _InterlockedAnd(&data1, data2);
//retval = _InterlockedExchangeAdd(&data1, data2);
retval = _InterlockedIncrement(&data1);
printf("0X%X 0X%X 0X%X", data1, data2, retval);
scanf("%d",aa);
}