Раньше, по умолчанию typedef не применялось к structs в языке программирования C. Это поведение было выбрано по нескольким причинам.
Структуры (structs) в C - это простые типы данных, которые позволяют объединять несколько переменных различных типов в одну сущность. В отличие от классов в объектно-ориентированных языках программирования, структуры в C не имеют методов.
Одной из главных причин, по которой structs были предпочтительнее использовать без typedef, заключалась в сохранении совместимости с предыдущими версиями языка C. Когда typedef применялся к struct, это влияло на способ обращения к переменным структуры и редактировало уже существующий код. Это могло привести к сложностям при обновлении и поддержке старых программ.
Другая причина состояла в том, что отсутствие typedef в структурах позволяло программистам видеть явно, что определенный тип данных является структурой. Это делало код более читабельным и понятным, особенно для начинающих разработчиков.
Структуры в C, используемые без typedef, были похожи на классы в объектно-ориентированных языках программирования. Они могли содержать переменные различных типов, которые можно было объединить в одну сущность. Однако, отсутствие методов в структурах делало их менее гибкими и ограниченными по функциональности.
В последующих версиях языка C появилась возможность использования typedef с structs по умолчанию, чтобы сделать код более читабельным и поддерживаемым. Это позволяет программистам объявлять переменные, используя более привычный и понятный синтаксис.
Таким образом, причины, по которым structs в языке C не имеют typedef по умолчанию, включают совместимость с предыдущими версиями языка и желание сделать код более понятным и читабельным. Однако, в современном программировании использование typedef с structs становится все более распространенным для улучшения понимания и облегчения написания кода.