Good point - not that I'm aware of.  I suspect a ... is needed.
Indeed, experiment confirms this.
```
#define stupid(...)
int main(void) {
    stupid(x, y, pig, fly, elephant);
    return 0;
}
```
compiles just fine, but not without the ...