macro argument deduction seems incorrect with zero arguments?

Viewed 51
# 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();
0 Answers
Related