title: Using a macro for a function
body: <p>I'm having the following problem with a macro for a function.  This was working until I added the print_heavyhitters function.  I have this in m61.h:</p>
  
  <pre><code>#if !M61_DISABLE
  #define malloc(sz)      m61_malloc((sz), __FILE__, __LINE__)
  #define free(ptr)       m61_free((ptr), __FILE__, __LINE__)
  #define realloc(ptr, sz)    m61_realloc((ptr), (sz), __FILE__, __LINE__)
  #define calloc(nmemb, sz)   m61_calloc((nmemb), (sz), __FILE__, __LINE__)
  #define print_heavyhitters(sz)  print_heavyhitters((sz), __FILE__, __LINE__)
  #endif
  </code></pre>
  
  <p>in m61.c, all of these functions are fine except print_heavyhitters(sz).  I get "   - Macro usage error on the function print_heavyhitters:</p>
  
  <pre><code>- Macro usage error for macro: 
   print_heavyhitters
  - Syntax error
  </code></pre>
  
  <p>m61.c:</p>
  
  <pre><code>#include "m61.h"
  ...
  
  void *m61_malloc(size_t sz, const char *file, int line) {...}
  
  void print_heavyhitters(size_t sz, const char *file, int line) {...}
  </code></pre>