On Fri, 5 Nov 2021, 01:00 Roy Qu via Gcc, <gcc@gcc.gnu.org> wrote: > Version: GCC 11.2 (msys2 mingw-w64 X86_64) > When a macro have more than one arguments, and u call it with no argument, > gcc will compliant with " only 1 given" instead of " 0 given" > > Demo code: > > #define TEST(x,y) test(x,y) > int main() { > int x=TEST(); > }: > > Error message: > F:/test.cpp:4:20: error: macro "TEST" requires *2* arguments, but only *1* > given > > 4 | int x=TEST(); > > | ^ >
No, you called it with one argument. An empty token sequence is a valid macro argument. TEST(,) would be two arguments. N.B. this is the wrong mailing list. If you want to ask about using GCC you should use the gcc-help list, or to report bugs you should use the bugzilla database. >