InterlockedExchange Visual Studio 2010 Intrinsic

时间:2012-01-25 10:50:29

标签: c++ visual-studio-2010 atomic intrinsics interlocked

我在编译器的优化设置中启用了内部函数,但是,InterlockedExchange生成的代码正在生成对kernel32.dll的调用,而不是生成内联汇编。这尤其成问题,因为该功能在Vista之前的Windows版本中不可用。

MSDN documentation状态“此函数使用编译器内在可能的”实现。是否有可能让编译器使用InterlockedExchange的实际内部代码?

1 个答案:

答案 0 :(得分:3)

互锁内在函数需要下划线前缀(或#pragma intrinsic),因此您要使用_InterlockedExchange,还需要包含intrin.h

另外,你完全阅读了你的引用,它说:

  

此函数使用编译器内在实现   可能。有关更多信息,请参阅Winbase.h头文件和   的 _InterlockedExchange