Является ли законным иметь повторяющиеся значения перечисления в C?

17
enum protocol {
    ascii_prot = 3, /* arbitrary value. */
    binary_prot,
    negotiating_prot = 4 /* Discovering the protocol */
};

Оба binary_prot и negotiating_prot равны 4 ?

    
задан gdb 06.04.2011 в 05:30
источник

2 ответа

34

Да.     

ответ дан James McNellis 06.04.2011 в 05:33
источник
6

Да; C не относится к значениям перечисления. Почему вы можете это сделать, это еще один вопрос, если нет причин рассматривать пакет обнаружения так же, как пакеты данных. (Что вполне может быть, когда кто-то другой разработал протокол, и вы хотите как можно ближе придерживаться их документации.)

    
ответ дан geekosaur 06.04.2011 в 05:36
источник