Вы должны развиваться. Спасибо за прослушивание: -)
На самом деле я остановлюсь на этом.
Вы правы, что C99 существует уже довольно давно. Вы должны (по моему мнению) использовать этот стандарт для всего, кроме устаревшего кода (где вы просто исправляете ошибки, а не добавляете новые функции). Вероятно, это не стоит для унаследованного кода, но вы должны (как и во всех бизнес-решениях) провести собственный анализ затрат / выгод.
Я уже гарантирую, что мой новый код совместим с C1x - хотя я пока не использую какие-либо новые функции, я стараюсь убедиться, что он не сломается.
Что касается кода, на который следует обращать внимание, авторы стандартов серьезно относятся к обратной совместимости . Их работа никогда не заключалась в разработке нового языка, а в том, чтобы кодифицировать существующие практики.
Фаза, в которой они находятся в данный момент, дает им больше свободы в обновлении языка, но они по-прежнему следуют клятве Гиппократа с точки зрения своего вывода: «прежде всего, не навреди».
Как правило, если ваш код нарушен новым стандартом, компилятор вынужден сообщить вам об этом. Так что простая компиляция вашей базы кода будет отличным началом. Однако, если вы прочитаете документ C99 с обоснованием , вы увидите фразу «тихое изменение» - это то, что вам нужно остерегаться.
Это поведенческие изменения в компиляторе, о которых вам не нужно сообщать, и они могут стать источником сильного беспокойства и скрежета зубов, если ваше приложение начинает вести себя странно. Не беспокойтесь о битах «тихого изменения в c89» - если бы они были проблемой, они бы вас уже укусили.
Этот документ, кстати, отлично читается, чтобы понять, почему действительный стандарт говорит то, что он говорит.