Описание языка С в данной книге разделено на две части. В части I рассматриваются свойства С, определенные Стандартом ANSI 1989 года (Стандарт С89) с учетом 1-й Поправки, принятой в 1995 году. В настоящее время эта версия С широко распространена и поддерживается всеми существующими компиляторами С. Эта версия является также основой языка C++, поэтому на нее обычно ссылаются как на подмножество C++. В части II описываются новые свойства С,введенные Стандартом 1999 года (С99); здесь же дано подробное объяснение, чем С99 отличается от С89. Новый стандарт 1999 года почти полностью базируется на Стандарте 1989 года, появились лишь некоторые новые возможности языка, принципиально не повлиявшие на его суть. Таким образом, С89 является основой как С99, так и C++.
Отдельное рассмотрение языка С в двух аспектах — С89 как основы и специфических свойств С99 — имеет три главных преимущества:
- Достаточно четко определены различия между С89 и С99. В настоящее время пока еще нет общедоступных компиляторов С99, поэтому для программиста очень важно понимание этих различий. В противном случае может оказаться, что, решая определенную задачу, программист рассчитывает на средства языка, не поддерживаемые ни одним из существующих компиляторов.
- Многие читатели, знакомые с С89, без труда обнаружат новые свойства языка, введенные Стандартом С99. Изложение версии С99 в отдельной части облегчает для квалифицированных программистов задачу поиска новой информации о версии С99. Но следует отметить, что и в части I там, где это уместно, упоминаются отличия С89 от С99 и новые возможности языка, введенные Стандартом С99.
- Отдельное рассмотрение версии С89 позволяет предельно четко определить версию С, образующую подмножество C++. Это особенно важно при написании тех программ на С, которые будут транслироваться компилятором C++. Это необходимо также в том случае, если планируется переход на компилятор C++ или возникает необходимость работать с обоими компиляторами одновременно.
Знание различий между С89 и С99 является обязательным для каждого высококвалифицированного специалиста С, работающего с программами на языке С.
Часть I построена следующим образом:
- Глава 01. Обзор возможностей языка C
- Глава 02. Выражения
- Глава 03. Операторы
- Глава 04. Массивы и строки
- Глава 05. Указатели
- Глава 06. Функции
- Глава 07. Структуры, объединения, перечисления и декларации typedef
- Глава 08. Ввод / вывод на консоль
- Глава 09. Файловый ввод / вывод
- Глава 10. Препроцессор и комментарии