Microsoft Visual C++ support this feature:
#define PRINTF(fmt, ...) printf(fmt, ##__VA_ARGS__)
The following usage are both valid:
PRINTF("Good!");
PRINTF("Good (%d)!", 0);
You can pass nothing to the variable numbers of arguments.
I like Pelles C for it supports many new features than Visual C++.
But this one hasn't been supported until 8.0 RC...