title: InterlockedIncrement usage
body: <p>While reading about the function <a href="http://msdn.microsoft.com/en-us/library/ms683614(VS.85).aspx#" rel="noreferrer">InterlockedIncrement</a> I saw the remark that the variable passed must be aligned on a 32-bit boundary. Normally I have seen the code which uses the InterlockedIncrement like this:</p>
  
  <pre><code>class A
  {
   public:
     A();
     void f();
  
   private:
    volatile long m_count;
  };
  
  A::A() : m_count(0)
  {
  }
  
  void A::f()
  {
    ::InterlockedIncrement(&amp;m_count);
  }
  </code></pre>
  
  <p>Does the above code work properly in multi-processor systems or should I take some more care for this?</p>