I think I've read somewhere that it is illegal to take the address of an enum value in C (enum values not being lvalues; however, I can't find any information on this now). Is that correct and, if so, why?
Edit:
Here's an example that clarifies what I mean by "enum value" above. I mean taking the address of first_value
below, not taking the address of an actual instance of an enum:
enum myenum
{
first_value,
second_value
};