Описания
Базовые типы данных
Алфавит
Начальные сведения
Краткость записи
Библиотека стандартных функций
Язык C компактен, т. е. набор основных его средств и конструкций невелик. Многие необходимые действия (например, операции ввода-вывода) не входят в состав собственно языка, но для их выполнения предусмотрен набор стандартных функций. Эти функции — неотъемлемая часть реализации языка; их ассортимент и поведение точно определены стандартом. Стандартная библиотека содержит более сотни функций.
В языке последовательно выдерживается принцип краткости обозначений. Для наиболее часто используемых конструкций выбраны самые короткие формы записи или существуют альтернативные укороченные варианты.
В языке C буквы верхнего и нижнего регистров (заглавные и строчные) считаются различными. Все ключевые слова языка записываются строчными буквами. Символ подчеркивания (_) играет роль буквы.
|
|
char – символы; размер всегда 1 байт
int – целые числа. Размер зависит от архитектуры процессора, это «естественный» размер элемента данных (машинное слово).
float – числа с плавающей точкой обычной (одинарной) точности.
double – числа с плавающей точкой увеличенной (двойной) точности. Наличие двух отдельных типов чисел с плавающей точкой обусловлено тем, что подавляющее большинство процессоров умеют работать с вещественными числами «обычной» и «увеличенной» точности.
указатель – адрес ячейки машинной (оперативной) памяти.
void – «пустой» тип (значение отсутствует или не определено). Используется для функций, не возвращающих никакого значения; может также указывать, что функция не имеет аргументов. Указатель на величину типа void — это абстрактный указатель (адрес размещения данных неизвестного типа).
Объекты программы (сложные типы, переменные, функции) необходимо описывать до их использования. Это правило иногда допускает исключения (применительно к функциям), но лучше ими не пользоваться (плохой стиль, который увеличивает вероятность скрытых ошибок).
Пользование стандартными библиотечными функциями требует большого количества относящихся к ним описаний. Эти описания не нужно писать самому: они помещены в т.н. стандартные «заголовочные» файлы, которые поставляются вместе с компилятором и библиотеками. Заголовочные файлы включаются в состав программы с помощью директивы #include.
Программа состоит из отдельных функций. Каждая функция записывается отдельно (т. е. функции нельзя «вкладывать» друг в друга, как в Паскале). Порядок следования функций в файле с исходным текстом программы не имеет значения (при условии, что объявление функции или переменной встречается в исходном файле раньше их использования).
|
|
Как уже упоминалось, в законченной программе обязательно должна присутствовать функция с именем main — её вычисление и есть выполнение программы.
Исходный текст программы может находиться как в одном, так и в нескольких файлах. Единственное ограничение — функцию нельзя разрывать, она целиком должна находиться в одном файле. Для правильной сборки программы, состоящей из нескольких файлов, необходимо во всех её частях иметь согласованные объявления и определения.
Способ разбиения исходного текста на файлы не безразличен с точки зрения смысла программы. Переменная может быть видимой (доступной):
· для единственной функции (локальная переменная)
· для всех функций в пределах одного исходного файла (внешняя статическая)
· для всех функций программы (внешняя, или глобальная)
Функция может быть видимой (доступной для вызова):
· для всех функций в пределах одного исходного файла (статическая функция)
· для всех функций программы (глобальная функция)