I wish this help you We just have to expand the macro. You can use gcc -E to invoke just the preprocessor; it will also expand all #include directives, so the output is going to be ugly. But let's do it manually. The arguments to the macro are token sequences, not expressions.
# define _2a(list,a1,a2) list a1;a2;
main _2a((argc,argv), int argc, char * argv)