我已经包含windows.h,并且想要在vs2010中使用InterlockedAdd并编译错误“找不到标识符”,但是InterlockedIncrement
可以很好地工作。我尝试使用:
#include <intrin.h>
#pragma intrinsic(_InterlockedAdd)
并编译错误:
代码有什么问题?
最佳答案
InterlockedAdd
函数仅在Itanium平台上可用。在x86和x86-64平台上,可以改为使用InterlockedExchangeAdd
。这还会向目标变量添加一个值,但它会返回原始值而不是新值。