Я изучаю основы и синтаксис C перед началом программирования систем в следующем месяце. При чтении я столкнулся со стандартами C89/99. Согласно Википедии,
C99 представила несколько новых функций, включая встроенные функции, несколько новые типы данных (в том числе длинные int и сложный тип для представления комплексные числа), переменной длины массивы, поддержка переменных массивов (макросы переменной arity) и поддержка для однострочных комментариев, начинающихся с //, как в BCPL или С++. Многие из этих уже были реализованы как расширений в нескольких компиляторах C.
C99 по большей части отстает совместим с C90, но является более строгим В неком роде; в частности, объявление, в котором отсутствует тип спецификатор больше не имеет int неявно предполагается. Стандартный макрос STDC_VERSION определяется значением 199901L, чтобы указать, что поддержка C99 доступен. GCC, Sun Studio и другие компиляторы теперь поддерживают многие или все новые функции C99.
Я заимствовал копию K & R, 2nd Edition и использовал стандарт C89. Для ученика использование C89 недействительно некоторых предметов, охваченных K & R, и если да, то на что я должен смотреть?