为什么_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;
}