在 MSDN 上,我看到了
InterlockedCompareExchange64
要求参数64位对齐,
但是为了
_InterlockedCompareExchange64
我认为没有这样的对齐要求,它是 提到为 InterlockedCompareExchange64 提供编译器内在支持。
那么,这是否意味着我可以在不关心对齐的情况下使用 _InterlockedCompareExchange64?因为我不太清楚对齐在这里意味着什么。
最佳答案
我很确定这是一个文档错误,而不是两个函数之间的任何直接区别 - 因为它们导致完全相同的 CMPXCHG8B 指令。 [当然假设你正在寻找它在 SMP 系统上实际上是原子的 - 但它是一个非常专业的指令,所以我怀疑它有很多其他用途]。
关于c++ - _InterlockedCompareExchange64的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18204830/