Язык C относится к языкам
среднего уровня, поскольку в нем сочетаются управляющие структуры
языков высокого уровня со способностью манипулирования битами,
байтами и указателями (адресами). Таким образом, C предоставляет
программисту практически полное управление компьютером. В самых
общих словах язык C++ является объектно-ориентированной версией
языка C. Несмотря на то что язык C++ был задуман как набор
объектно-ориентированных расширений для языка C, вскоре он развился
в самостоятельный язык программирования. В настоящее время его новые
средства почти удвоили объем исходного языка. Вряд ли стоит
доказывать, что C++ - один из самых мощных компьютерных языков,
разработанных до сих пор. В 1999 году был принят новый
ANSI/ISO-стандарт для языка C. Он включает ряд усовершенствований и
несколько новых средств. Некоторые из этих "новых" средств
позаимствованы из языка C++, а некоторые предоставляют совершенно
новые возможности. Следовательно, отдельные элементы, добавленные в
версию C99, несовместимы с языком C++. Это означает, что с
появлением версии C99 стандарт языка C больше не является чистым
подмножеством языка C++. В этой книге описаны версии C89, C99 и
действующий стандарт языка C++. Если какое-нибудь средство является
уникальным для одного из вариантов языков, этот факт обязательно
отмечен в справочнике. При отсутствии специальной отметки можно
предполагать, что описываемое средство работает во всех трех
версиях. Безусловно, в справочнике невозможно раскрыть все
многогранные аспекты языков C и C++. Цель справочника - дать краткое
описание самых важных средств этих языков в удобной и понятной для
использования форме.
Введение
C и C++ - самые значительные языки программирования в мире. И в самом
деле, быть сегодня профессиональным программистом означает знать эти два
языка на высоком уровне, поскольку они представляют собой фундамент, на
котором строится современное программирование.
Язык C изобрел Дэнис Ритчи (Dennis Ritchie) в начале 70-х годов. C
относится к языкам среднего уровня, поскольку в нем управляющие структуры
языков высокого уровня сочетаются со способностью манипулировать битами,
байтами и указателями (адресами). Таким образом, C предоставляет
программисту возможность практически полностью управлять компьютером.
В 1989 году Американским национальным институтом стандартов (American
National Standards Institute - ANSI) был принят стандарт для языка C. Эту
версию языка C обычно называют C89. Кроме того, этот же стандарт был
принят и Международной организацией стандартов (International Standards
Organization - ISO). В 1995 году стандарт C89 был немного улучшен.
Язык C++ создан Бьярни Страуструпом (Bjarne Stroustrup), и годом
создания считается 1979-й. Разработка и усовершенствование языка C++
потребовали от создателя больших усилий на протяжении 80-х и большей
части 90-х годов. Наконец, в 1998 году был принят
ANSI/ISO-стандарт для языка C++. Говоря в самых общих словах, язык C++
является объектно-ориентированной версией языка C. C++ построен на основе
версии C89, включающей все усовершенствования 1995 года, и теперь эту
версию C89 называют C-подмножеством языка C++. Несмотря на то что язык C++
был задуман как набор объектно-ориентированных расширений для языка C,
вскоре он развился в самостоятельный язык программирования. В настоящее
время его новые средства почти удвоили объем исходного языка. Вряд ли
стоит доказывать, что C++ - один из самых мощных компьютерных языков,
разработанных до сих пор.
В 1999 году был принят новый ANSI/ISO-стандарт для языка C. Эта
версия называется C99. Она включает ряд усовершенствований и несколько
новых средств. Одни из этих "новых" средств заимствованы из языка C++, а
другие предоставляют совершенно новые возможности. Следовательно,
отдельные элементы, добавленные в версии C99, несовместимы с языком C++.
Это означает, что с появлением версии C99 стандарт языка C больше не
является чистым подмножеством языка C++. К счастью, многие
"несовместимости" связаны со средствами специального назначения, которые
можно легко обойти. Таким образом, и новый вариант языка C позволяет
создавать программы, совместимые с языком C++. На момент написания этой
книги большинство компиляторов не принимали все новшества версии C99, но,
безусловно, ситуация вскоре изменится.
В следующей таблице демонстрируются отношения между версиями C89, C99 и
языком C++.
C89
Оригинальный стандарт ANSI/ISO языка C, который большинство
программистов считают "настоящим" языком C
C++
Объектно-ориентированная версия языка C. Действующий в данный
момент стандарт ANSI/ISO для языка C++ построен на основе версии
C89. Следовательно, C89 является подмножеством языка C++
C99
Последний стандарт языка C. Включает в полном объеме вариант C89,
но с несколькими новыми средствами. Причем некоторые из них не
поддерживаются текущим стандартом языка C++
В этой книге описаны версии C89, C99 и действующий стандарт языка C++.
Если какое-нибудь средство является уникальным для одного из вариантов
языков, этот факт обязательно отмечается в настоящем справочнике. При
отсутствии специальной отметки можно предполагать, что описываемое
средство работает во всех трех версиях.
Безусловно, в справочнике невозможно раскрыть все многогранные аспекты
языков C и C++. Назначение справочника - дать краткое описание самых
важных средств этих языков в удобной и понятной для использования форме.