# define CALL(a, b) test(a, b)
CALL();
Compiling the above with gcc -E 0.c fails with:
error: macro "CALL" requires 2 arguments, but only 1 given
But I haven't given it any arguments, where is the first argument coming from?
Similarly this snippet doesn't cause preprocessor errors which is strange:
# define CALL(a) test(a)
CALL();