Why do C enumeration constants need a name? Because this:
#include <stdio.h>
enum {NO, YES};
int main(void)
{
printf("%d\n", YES);
}
works just the same as this:
#include <stdio.h>
enum boolean {NO, YES};
int main(void)
{
printf("%d\n", YES);
}