Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C_Lect1.doc
Скачиваний:
5
Добавлен:
08.09.2019
Размер:
56.32 Кб
Скачать

1.1. История создания

Язык C тесно связан с системой UNIX; собственно говоря, он и был создан для ее разработки:

[язык BCPL (середина 60-х) ]  язык B (1970 г., 1-я версия UNIX для PDP-7)  язык C

В 1978 г. вышло 1‑е издание книги Б. Кернигана и Д. Ритчи «Язык программирования C». Авторы книги были одновременно и разработчиками самого языка. До принятия официального стандарта книга Кернигана и Ритчи служила эталонным описанием языка не только для программистов, но и для разработки компиляторов. Первоначальная версия языка C, изложенная в 1‑м издании книги, сейчас уже устарела, хотя до сих пор поддерживается большинством компиляторов.

В течение 5 лет (1983 – 1988 гг.) велась работа над стандартом языка в комитете X3J11 ANSI (American National Standards Institute — Национальный институт стандартов США). Официальный стандарт опубликован в 1989 г. Этот стандарт затем был утвержден Международной организацией по стандартизации (ISO) как ISO/IEC 9899-1990. Стандартный вариант языка (под названием ANSI C) изложен во 2-м английском издании книги Кернигана и Ритчи, вышедшем в 1988 г. и выдержавшем к настоящему времени 34 переиздания1.

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

1.2. C и C++

Язык C++ создан на основе C; в нем реализованы идеи объектно-ориентированного программирования (ООП). Сам по себе язык C не является объектно-ориентированным.

В известном смысле C можно считать подмножеством C++. Это значит, что правильная программа на языке C (при некотором ограничении «вольностей» со стороны программиста) является также и программой на языке C++.

В настоящее время практически нет компиляторов для «чистого» C; большинство из них годятся для работы как на C, так и на C++.

2. Отличительные особенности языка c

2.1. Нет ничего, кроме функций

Имеется единственный вид элементов, из которых строится программа — функции. Это следствие общего принципа: выполнение программы представляет собой последовательное вычисление различных выражений. При этом допускаются побочные эффекты, т.е. какие-то дополнительные результаты помимо формирования конечного значения вычисляемого выражения. Например, попутно могут меняться значения различных переменных, производиться операции ввода-вывода и т.п. Предполагается, что иногда «побочные» эффекты могут являться главной целью вычисления выражения, а сам формальный результат, т.е. значение выражения, не нужен (нигде далее не используется). Эта идеология допускает существование функций, не возвращающих2 никакого значения, если по смыслу в нем нет необходимости (т.е. такие функции не производят ничего кроме побочных эффектов).

Функции могут иметь произвольные названия за исключением одной: main. В любой законченной программе обязательно должна присутствовать функция main, которая называется «главной»: выполнение программы есть не что иное, как «вычисление» функции main; при этом результат, т.е. вычисленное значение, в самой программе использовать негде. (Это т. наз. «код завершения», который может быть передан тому, кто запустил программу — вышестоящему процессу операционной системы). В некоторых системах код завершения не является строго обязательным, и там разрешается делать main без возвращаемого значения.

2.2. Библиотека стандартных функций

Язык C компактен, т. е. набор основных его средств и конструкций невелик. Многие необходимые действия (например, операции ввода-вывода) не входят в состав собственно языка, но для их выполнения предусмотрен набор стандартных функций. Эти функции — неотъемлемая часть реализации языка; их ассортимент и поведение точно определены стандартом. Стандартная библиотека содержит более сотни функций.

2.3. Краткость записи

В языке последовательно выдерживается принцип краткости обозначений. Для наиболее часто используемых конструкций выбраны самые короткие формы записи или существуют альтернативные укороченные варианты.

3. Начальные сведения

3.1. Алфавит

В языке C буквы верхнего и нижнего регистров (заглавные и строчные) считаются различными. Все ключевые слова языка записываются строчными буквами. Символ подчеркивания (_) играет роль буквы.

3.2. Базовые типы данных

char – символы; размер всегда 1 байт

int – целые числа. Размер зависит от архитектуры процессора, это «естественный» размер элемента данных (машинное слово).

float – числа с плавающей точкой обычной (одинарной) точности.

double – числа с плавающей точкой увеличенной (двойной) точности. Наличие двух отдельных типов чисел с плавающей точкой обусловлено тем, что подавляющее большинство процессоров умеют работать с вещественными числами «обычной» и «увеличенной» точности.

указатель – адрес ячейки машинной (оперативной) памяти.

void – «пустой» тип (значение отсутствует или не определено). Используется для функций, не возвращающих никакого значения; может также указывать, что функция не имеет аргументов. Указатель на величину типа void — это абстрактный указатель (адрес размещения данных неизвестного типа).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]