我已经包含了windows.h,并希望在vs2010中使用InterlockedAdd并编译错误“未找到标识符”,但InterlockedIncrement
可以正常工作。我尝试使用:
#include <intrin.h>
#pragma intrinsic(_InterlockedAdd)
并编译错误:
警告C4163:'_ InterlockedAdd':不可用作内在函数
1&gt; test10.cpp(107):错误C3861:'InterlockedAdd':未找到标识符
代码出了什么问题?
答案 0 :(得分:15)
InterlockedAdd
功能仅适用于Itanium平台。在x86和x86-64平台上,您可以使用InterlockedExchangeAdd
代替。这也会为目标变量添加一个值,但它会返回原始值而不是新值。