为什么在vs2010中没有InterlockedAdd?

时间:2013-01-30 11:56:41

标签: c++ c windows visual-studio-2010 interlocked

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

#include <intrin.h>
#pragma intrinsic(_InterlockedAdd) 

并编译错误:

  

警告C4163:'_ InterlockedAdd':不可用作内在函数
  1&gt; test10.cpp(107):错误C3861:'InterlockedAdd':未找到标识符

代码出了什么问题?

1 个答案:

答案 0 :(得分:15)

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