为什么在vs2010中没有InterlockedAdd?

mag*_*ang 8 c c++ windows interlocked visual-studio-2010

我已经包含了windows.h,并希望在vs2010中使用InterlockedAdd并编译错误"未找到标识符",但是InterlockedIncrement可以正常工作.我尝试使用:

#include <intrin.h>
#pragma intrinsic(_InterlockedAdd) 
Run Code Online (Sandbox Code Playgroud)

并编译错误:

警告C4163:'_InterlockedAdd':不可用作内部函数
1> test10.cpp(107):错误C3861:'InterlockedAdd':未找到标识符

代码有什么问题?

int*_*jay 15

InterlockedAdd功能仅适用于Itanium平台.在x86和x86-64平台上,您可以使用InterlockedExchangeAdd.这也会为目标变量添加一个值,但它会返回原始值而不是新值.