#include <stdio.h>
#define __NARGS(_1, _2, _3, _4, _5, VAL, ...) VAL
#define NARGS(...) (sizeof(#__VA_ARGS__) == sizeof("") ? 0 : __NARGS(__VA_ARGS__, 5,4,3,2,1))
#define FOO(...) NARGS(__VA_ARGS__)
int main()
{
printf("%d\n", FOO()); // prints 0
printf("%d\n", FOO(/*comment*/)); // prints 0
printf("%d\n", FOO(1)); // prints 1
printf("%d\n", FOO(1, 2)); // prints 2
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIF9fTkFSR1MoXzEsIF8yLCBfMywgXzQsIF81LCBWQUwsIC4uLikgVkFMCiNkZWZpbmUgTkFSR1MoLi4uKSAoc2l6ZW9mKCNfX1ZBX0FSR1NfXykgPT0gc2l6ZW9mKCIiKSA/IDAgOiBfX05BUkdTKF9fVkFfQVJHU19fLCA1LDQsMywyLDEpKQoKI2RlZmluZSBGT08oLi4uKSBOQVJHUyhfX1ZBX0FSR1NfXykKCmludCBtYWluKCkKewogIHByaW50ZigiJWRcbiIsIEZPTygpKTsgICAgIC8vIHByaW50cyAwCiAgcHJpbnRmKCIlZFxuIiwgRk9PKC8qY29tbWVudCovKSk7ICAgICAvLyBwcmludHMgMAogIHByaW50ZigiJWRcbiIsIEZPTygxKSk7ICAgIC8vIHByaW50cyAxCiAgcHJpbnRmKCIlZFxuIiwgRk9PKDEsIDIpKTsgLy8gcHJpbnRzIDIKCiAgcmV0dXJuIDA7Cn0K