title: Problem with include guard
body: <p>When I add an include guard to my header file for a Visual C++ project, it gives me the following warning and error:</p>
  
  <blockquote>
    <p>warning C4603: '_MAPTEST_H' : macro is not defined or definition is different after precompiled header use        </p>
    
    <p>Add macro to precompiled header instead of defining here</p>
    
    <p>.\MapTest.cpp(6) : use of precompiled header** // the precompiled header stdafx.h is included in this line</p>
    
    <p>.\MapTest.cpp(186) : fatal error C1020: unexpected #endif</p>
  </blockquote>
  
  <p>but when I add the precompiled header before the include guard, no warning or error is emitted. What is the reason for this?</p>