title: Macro to call a function
body: <p>I need a macro (or a function, but preferably a macro) that takes a function name and an unlimited number of arguments, then passes the arguments to the function. Let's say this macro is <code>MACROFOO</code>.</p>
  
  <pre><code>#define MACROFOO(function, ...)     /* what do I put here?? */
  
  int foo_bar(int x, int y)
  {
      // do stuff
  }
  
  int main(void)
  {
      int x = 3;
      int y = 5;
  
      MACROFOO(foo_bar, x, y);    // calls foo_bar(x, y)
  }
  </code></pre>
  
  <p>How could I define such a macro? I thought of doing something like:</p>
  
  <pre><code>#define MACROFOO(function, args...)     (function)(args)
  </code></pre>
  
  <p>but it looks like that passes <code>...</code> to the function, instead of the actual arguments. What should I do?</p>