在阅读InterlockedIncrement函数时,我看到了传递的变量必须在 32 位边界上对齐的注释。通常我见过这样使用 InterlockedIncrement 的代码:
class A
{
public:
A();
void f();
private:
volatile long m_count;
};
A::A() : m_count(0)
{
}
void A::f()
{
::InterlockedIncrement(&m_count);
}
上面的代码在多处理器系统中是否正常工作,还是我应该多加注意?