modernc.org/cc@v1.0.1/testdata/issue68.h (about)

     1  typedef struct a *b;
     2  #define c(type, name, paramName)                          \
     3    void set##name(const b node, type paramName); \
     4    type get##name(const b node);
     5  
     6  c(void *, Context, context); // The final semicolon is a C++11 empty declaration, illegal in C99.
     7  
     8  // See also http://en.cppreference.com/w/cpp/language/declarations