定义时,_InterlockedCompareExchange64无法正常工作

时间:2018-07-06 12:36:51

标签: c++ compare atomic intrinsics interlocked

为什么_InterlockedCompareExchange64时下面的代码无法正常工作 用作定义?该指令将第一个参数的目标与第三个参数进行比较,如果它们相等,则将第二个参数复制回第一个参数的目标。

#include "stdafx.h"
#include "Windows.h"

#define ATOMIC_CAS(ptr, oldval, newval) _InterlockedCompareExchange64(ptr, newval, oldval)

int main()
{

    __int64 tt = 20;
    ATOMIC_CAS(&tt, 10, 20);
    //_InterlockedCompareExchange64(&tt, 10, 20);



    return 0;
}

0 个答案:

没有答案