title: Macro not seen by header
body: <p>How can I use a macro as a function (declared in header - macro in source)? 
  I'm looking for something like this (except that this one doesn't work)...</p>
  
  <p><strong>Foo.h:</strong></p>
  
  <pre><code>#ifndef FOO_H
  #define FOO_H
  
  struct bar;
  
  int bar_isEmpty(struct bar *b);
  
  #endif /* !defined FOO_H */
  </code></pre>
  
  <p><strong>Foo.c:</strong></p>
  
  <pre><code>struct bar {
     size_t numElements;
  };
  
  #define bar_isEmpty(bar) {bar-&gt;numElements == 0}
  </code></pre>
  
  <p>As you can see, I can't put the macro in the header, since the structure isn't defined there.</p>