Почему новые книги C не придерживаются стандарта C99?

Почти каждая (относительно) новая книга о c, программирование, которое я видел, кажется, не придерживается стандарта C99, или они покрывают его в дополнительной главе. Comming происхождения Java, стандарт C99 сделал миграцию (хорошо, все еще мигрировав ^^) намного легче для меня, и это, вероятно, относится к другим языкам, также.

Кажется, что C99 еще не достиг большинства разработчиков C. Но почему?

5
задан helpermethod 20 February 2010 в 20:02
поделиться

3 ответа

Короткий ответ: поддержка компиляторов устанавливается медленно, а программисты на языке c - консервативные люди, которые медленно меняют свое поведение.

13
ответ дан 18 December 2019 в 06:02
поделиться

Я сильно подозреваю, что это в основном потому, что MSVC не пытается поддерживать C99, и, вполне вероятно, никогда не будет. Есть несколько встроенных компиляторов в той же лодке, но они вряд ли достаточно распространены, чтобы иметь большое значение по отдельности. AFAIK все остальные, по крайней мере, пытаются реализовать C99 настолько, насколько это возможно.

На практике нет особых причин не использовать отдельные возможности C99, но если вы собираетесь изучать и писать на одном стандарте C, и только на одном, то это должен быть C89.

Более того, вероятно, довольно сложно и запутанно писать вводный текст на Си, который начинается со слов: "Хорошо, есть два разных стандарта, и я собираюсь использовать три разных цвета текста: один для C89, один для C99, и один для обоих". Кроме того, вероятно, труднее написать о C99 целую книгу, а затем "взять назад" многое из того, что вы сказали в приложении о C89, чем написать о C89, а затем дополнить его в приложении о C99.

Впрочем, это все предположения. На самом деле вам нужно спросить авторов книг, которые вы читаете (или, возможно, в некоторых случаях пойти против всех своих инстинктов программиста и прочитать предисловие ;-))

.
11
ответ дан 18 December 2019 в 06:02
поделиться

Риск перехода на новый компилятор на существующей кодовой базе, как правило, неизвестен, но это может быть довольно болезненным, лучше всего переключаться только тогда, когда у вас есть месяцев времени, чтобы вытрясти любые баги / изменения. А для действительно старых кодовых баз иногда разумнее вообще никогда не переключаться.

Я готов поспорить, что большинство проектов, использующих C, вообще не желают переходить на C99, поскольку большая существующая кодовая база практически не дает никаких преимуществ при наличии потенциала обратная сторона. Я работал в одной крупной компании, занимающейся разработкой программного обеспечения, которая проверяла компиляторы в дерево исходных текстов вместе с кодом и никогда никогда не переключала компиляторы для продукта.

3
ответ дан 18 December 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: