Язык программирования C
Цель: систематизировать знания по языку C.
В этой теме мы рассмотрим два раздела:
Что у языка C общего с другими языками программирования
Что отличает язык C
1. C как язык программирования высокого уровня.
Если быть предельно честным, то язык C с большо-о-о-й натяжкой можно назвать языком программирования высокого уровня. Дело в том, что разрабатывался он не как язык для пользователей (как, например, Pascal), а как язык для программистов. Отсюда наличие в нем множества элементов низкоуровневого программирования, присущих ассемблерам,
и отсутствие, например, строкового типа данных.
В любом языке программирования в том или ином виде присутствуют семь основных конструкций:
- определение (объявление) переменных
- ввод и вывод данных
- арифметико-логические операции над переменными
- операторы, управляющие потоком выполнения
- циклы
- подпрограммы
- конструкторы составных данных (массивов, структур и т.п.)
Синтаксис представления этих конструкций от языка к языку может варьироваться, но семантика их не изменяется. Поэтому если понимать функциональное назначение конструкций программирования, то переход от языка к языку не составит особых трудностей.
Структура простейшей программы на языке C
Помимо основных конструкций программирования в каждом языке существуют правила построения программных единиц – модулей. В каждом языке обычно имеется главный модуль, с которого начинается выполнение приложения: в FORTRAN’е это PROGRAM; в Pascal’е это стартовая совокупность begin – end;
в C – это функция main().
Вообще понятие функции в языке C доведено до абсолюта – все программные единицы представлены только и только функциями. Причем наличие одной из них – main() обязательно. Активное исполнение приложения начинается в функции main(). Остальным функциям (если таковые имеются) управление передается только через вызов этих функций.
В исходном коде программы на языке C функции должны быть представлены отдельными непересекающимися блоками, которые не могут вкладываться друг в друга.
Структура простейшей программы на языке C представлена на рисунке
Причем если первые два раздела могут отсутствовать, то наличие функции main(), как мы уже говорили ранее, обязательно.
А теперь давайте разберем более подробно те семь конструкций. которые мы аннонсировали выше.
1.1. Определение и объявление переменных
Я не по ошибке использовал в заголовке два вроде бы схожих по смыслу слова - определение и объявление. (define and declare). Это связано с механизмом компиляции отдельных модулей и связывания их (линковки) в единый исполняемый модуль. Поскольку несколько независимо компилируемых модулей могут использовать одни и те же переменные, то место под эти переменные должно быть выделено одним из модулей, а остальные должны знать, что такая переменная (с таким именем и типом) существует и нужно только при связывании получить ее адрес. Аналогичный или похожий механизм разделения переменных присутствует и в других языках программирования – в FORTRAN’е это область данных COMMON. Поэтому в C кроме ключевых слов для определения переменных – int, char, float и т.п. существует ключевое слово extern – оно означает, что переменная будет (или была) определена в другом месте.
Итак, существуют следующие базисные (основные) типы данных:
целый
символьный
с плавающей точкой.
Основные типы могут иметь модификаторы типа:
беззнаковый (для символьных и целых)
с двойной точностью (для переменных с плавающей точкой)
короткие и длинные (для целых)
Размер памяти, отводимой для переменных, определяется типом и платформой:
символьный – 1 байт независимо от платформы
целый – зависит от платформы. На большинстве платформ размер памяти, отводимый для хранения переменных целого типа равен размеру машинного слова. Так, на IBM PC – 2 байта (16 разрядов), на SUN – 4 байта (32 разряда), на патриархе отечественных компьютеров БЭСМ-6 – аж целых 75!
короткий целый – ВСЕГДА 2 байта
длинный целый – зависит от платформы и определяется в файлах <types.h> и <limits.h>
с плавающей точкой – 4 байта
с плавающей точкой двойной точности – 8 байт
длинный с плавающей точкой двойной точности
Помимо базисных типов существует возможность определять производные типы данных – массивы, структуры, перечисления. Это мы обсудим чуть позже.
Стандарт языка С требует, чтобы все переменные были определены (или описаны) до первого исполняемого оператора в функции (блоке).
Область действия переменных.
В зависимости от того, как были определены или описаны переменные и константы, определяется из область видимости (действия). Переменные могут быть автоматическим, статическим и глобальными .
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.