title: how do i make doxygen ignore function-like macros when building the documentation?
body: <p>I need to document a project with doxygen, but also need to ignore some macros, which I use for readability in small sections of my code, for which it makes no sense to appear in the documentation.</p>
  <p>here's a minimal example (I mainly use the macros to index some C-style 2D or 3D arrays):</p>
  <pre><code>#include &lt;cstring&gt;
  /*! \file notes.cpp
    \brief A test for macros and doxygen
  */
  /// my main function
  int main ()
  {
     double loc_arr[9][4][4];
     memset (loc_arr, 0.0, 144 * sizeof (double));
  #define BLOCK(i) (&amp;(loc_arr[i][0][0]))
     for (int ii = 0; ii &lt; 9; ++ii)
     {
       memset (BLOCK(ii), double(ii), 16 * sizeof (double));
     }
  #undef BLOCK
     return 1;
  }
  </code></pre>
  <p>When I doxy it, with the following settings:</p>
  <pre><code>ENABLE_PREPROCESSING   = YES
  MACRO_EXPANSION        = YES
  EXPAND_ONLY_PREDEF     = NO
  SEARCH_INCLUDES        = YES
  INCLUDE_PATH           =
  INCLUDE_FILE_PATTERNS  =
  PREDEFINED             = 
  EXPAND_AS_DEFINED      = 
  SKIP_FUNCTION_MACROS   = YES
  </code></pre>
  <p>I obtain this:</p>
  <p><a href="https://i.stack.imgur.com/LVZ5i.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/LVZ5i.jpg" alt="screenshot" /></a></p>
  
  <p>Note that the only way i could avoid the macros to be documented was by setting <code>ENABLE_PREPROCESSING   = NO</code> , which is a problem to me since it also eliminates the inclusion graph on the top of the page.</p>