When we do not give the value in a macro substitution.
#define YES
printf("%d",YES)
The value of YES is not given, is it by default 0 or garbage?
You just defined YES to nothing. So the result program after preprocessor should be printf("%d",)