Creo que he leído en algún lugar que es ilegal tomar la dirección de un valor enum en C (los valores enum no son lvalues; sin embargo, no puedo encontrar ninguna información sobre esto ahora). ¿Es correcto y, si es así, por qué?Ubicación de la memoria del valor enum en C
Editar:
Aquí hay un ejemplo que aclara lo que quiero decir con "valor de enumeración" por encima. Me refiero a tomar la dirección de first_value
a continuación, no tomar la dirección de un caso real de una enumeración:
enum myenum
{
first_value,
second_value
};
Esa enumeración existe solo en la memoria del compilador, no en el ejecutable. Deberá crear una instancia de la enumeración para que aparezca en el ejecutable. – Anonym