struct elem
{
int i;
char k;
};
elem user; // compile error!
struct elem user; // this is correct
В приведенном выше фрагменте кода мы получаем ошибку для первого объявления. Но эта ошибка не возникает с компилятором C ++. В C ++ нам не нужно снова и снова использовать ключевое слово struct.
Так почему никто не обновляет свой компилятор C, чтобы мы могли использовать структуру без ключевого слова, как в C ++?
Почему разработчик компилятора C не устраняет некоторые сбои C, такие как приведенный выше, и не обновляет некоторые расширенные функции, не нарушая первоначальную концепцию C?
Почему это тот же старый компилятор, не обновленный с 1970-х годов?
Посмотрите на visual studio и т. Д. Он часто обновляется новыми выпусками, и для каждого нового выпуска мы должны изучать использование некоторых новых функций (даже если это проблема, с которой мы можем справиться). Мы также получим обновление с новым компилятором, если таковой имеется.
Не воспринимайте это как глупый вопрос. Почему это не возможно? Он может быть разработан без каких-либо проблем несовместимости (не затрагивая код, который был разработан на нынешнем / старом компиляторе)
Хорошо, давайте разработаем новый язык C, C +, который находится между C и C ++, который устраняет все недостатки C и добавляет некоторые расширенные функции из C ++, сохраняя его полезным для конкретных приложений, таких как приложения системного уровня, встроенные системы и т. Д.