#include <stdio.h>
#include <stdlib.h>

#define MAC(x) ((x)+1)
#define CHEESE (p+q)
#define SAUCE(x,y) ((x)+(y))

#define _textof(x) #x
#define textof(x) _textof(x)

int main(int argc, char *argv) {
//printf("#define MAC %s\n", textof(MAC));
  printf("#define MAC(x) %s\n", textof(MAC(x)));
  // Causes compile-time error: printf("#define MAC(x, y) %s\n", textof(MAC(x, y)));
  printf("#define CHEESE %s\n", textof(CHEESE));
//printf("#define SAUCE %s\n", textof(SAUCE));
  // printf("#define SAUCE(x) %s\n", textof(SAUCE(x)));
  printf("#define SAUCE(x,y) %s\n", textof(SAUCE(x,y)));
  // printf("#define SAUCE(x,y,z) %s\n", textof(SAUCE(x,y,z)));
  exit(0);
  return(1);
}
