_InterlockedAnd _InterlockedOr等原子级安全运算

来源:互联网 发布:近年来的交通事故数据 编辑:程序博客网 时间:2024/05/17 18:49


http://msdn.microsoft.com/en-us/library/windows/desktop/ff471407(v=vs.85).aspx
内部与-安全操作
_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);}


0 0