8

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

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

并编译错误:

警告 C4163:“_InterlockedAdd”:不能作为内部函数使用
1>test10.cpp(107):错误 C3861:“InterlockedAdd”:找不到标识符

代码有什么问题?

4

1 回答 1

16

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

于 2013-01-30T12:10:38.920 回答