InterlockedIncrement utilisation

Lors de la lecture sur la fonction InterlockedIncrement j'ai vu la remarque que la variable transmise doit être alignée sur une frontière de 32 bits. Normalement, je l'ai vu le code qui utilise la InterlockedIncrement comme ceci:

class A
{
 public:
   A();
   void f();

 private:
  volatile long m_count;
};

A::A() : m_count(0)
{
}

void A::f()
{
  ::InterlockedIncrement(&m_count);
}

Le code ci-dessus fonctionne correctement dans les systèmes multi-processeurs ou dois-je prendre un peu plus de soin pour cela?

OriginalL'auteur Naveen | 2009-03-05