title: expected identifier in #define statement
body: <p>[See my own answer below.]</p>
  
  <p>I have this code in a header file of my project:</p>
  
  <pre><code>#ifdef _LINUX
      #ifdef BUILD_ext
          #define EXP_IMP_GLOBAL extern
      #else
          #define EXP_IMP_GLOBAL
      #endif
  #else
  </code></pre>
  
  <p>G++ tells me the following when BUILD_ext is defined:</p>
  
  <pre><code>error: expected identifier before ‘extern’
           #define EXP_IMP_GLOBAL extern
                                  ^
  note: in expansion of macro ‘EXP_IMP_GLOBAL’
      class EXP_IMP_GLOBAL Classname
            ^~~~~~~~~~~~~~
  </code></pre>
  
  <p>I don't really know what to make of this error since the error doesn't appear when BUILD_ext is not defined and I also don't see, why there would be no identifier.</p>