Мне кажется, что я где-то читал, что незаконно принимать адрес значения enum в C (значения enum не являются lvalues, однако я не могу найти информацию об этом сейчас). Это правильно и, если да, то почему?
Edit:
Вот пример, который разъясняет, что я имею в виду под "значением перечисления" выше. Я имею в виду адрес ниже first_value
, не принимая адрес фактического экземпляра перечисления:
enum myenum
{
first_value,
second_value
};