Хотя у меня есть опыт работы с Enums в Java, перечисления типов typedef и Objective-C/C для меня новы. Я не могу понять разницу между перечислениями с именами, объявленными в начале, и перечислениями с именами, которые не были объявлены. Например:Anonymous vs Defined Enums
typedef enum Months {JAN, FEB, MAR, APR}
Months;
против
typedef enum {JAN, FEB, MAR, APR}
Months;
есть причина, чтобы когда-либо выбрать прежнюю форму над последним? Первое кажется излишним, если дважды указывать «Месяцы».
Этот question Выглядит очень похоже, но у него нет имени в конце, поэтому я не знаю, отвечает ли он на тот же вопрос.
Вообще говоря, компилятор в порядке с либо один, но по моему опыту многие библиотеки используют первый вариант для ясности. Кроме того, это 'typedef', а не' typdef' – BrainSteel
Следует также отметить, что вы должны использовать typedef NS_ENUM (type, enumName) для безопасности типа перечислимого типа. – paulrehkugler
Я не понимаю, как это дубликат. Принятый ответ предполагает, что мы используем первое по сравнению с последним или макросом, как было предложено @paulrehkugler, но я спрашивал, почему вы когда-либо использовали бывших над последними, которые я еще не уверен после прочтения другой статьи. Это только историческое значение? – ThinkBonobo