Си

Си (по-английски С) - это язык программирования, широко

распространенный среди системных программистов и разработчиков прикладных программ. Название языка Си соответствует третьей букве английского алфавита. Совпадение имеет свою историю. Один из языков, появившихся в *0-х годах, назывался AP* - язык программирования А (Эй). Так была занята первая буква алфавита. Во время работы над операционной системой *n*x был создан язык программирования В (Би). Следующая буква в

английском алфавите - С (Си).

Язык Си как инструментальный язык появился в процессе работы над

операционной системой Un*x. Работать над этой системой начал Кенон Томпсон в 1969 г. для микро-ЭВМ *D*-7 фирмы *EC. В 1972 году он вместе с Денисом Ритчи создал язык программирования Си. В нем сочетались лучшие свойства языка Ассемблер и языков высокого уровня. От Ассемблера были взяты гибкие и эффективные свойства работы с памятью, от языков высокого уровня - широкий набор управляющих конструкций, возможность работы со

сложными структурами, гибкие средства ввода-вывода.

Этот язык содержит набор конструкций и способов агрегатирования

данных.           Он          способен           поддерживать            технологию            структурного

программирования и разработку модульных программ. Программы, написанные на языке Си, могут быть легко перенесены как на другой компьютер, так и в другую систему. Программы на языке Си получаются короче, чем на других языках программирования. При этом увеличивается их наглядность и ясность. По компактности и скорости выполнения программы на

языке Си приближаются к программам, написанным на языке Ассемблер.

Однако язык Си предъявляет достаточно высокие требования к

квалификации использующего его программиста. В связи с этим не рекомендуется использовать язык Си, чтобы начать знакомство с программированием (для первого знакомства с программированием лучше подходят Бейсик и Паскаль). В процессе изучения необходимо осторожно пользоваться не до конца изученными возможностями, правилами умолчания и

т.д.

Простейшая программа на языке Си выглядит так:

/* Моя первая программа */                        /* 1 */

#INCLUDE<STDI*.X>                           /* 2 */

/* 3 * /


MAIN( )

{

PRINTF (”HEL*O, *RIEN*!”);

/* Здравствуй, Друг! */

}


/* 4 */

/* * * /

/* 6 */

 

/* 7 * /

 

Результат работы этой программы будет выглядеть таким: HELLO,

FRIEND!

Разберем эту программу подробнее. Первая строка содержит

комментарий, т.е. текст, который игнорируется компилятором и предназначается только для программистов. Комментарием в программе на Си является любая последовательность символов, заключенная между знаками /* */. Комментарии могут располагаться как на одной строке, так и на нескольких,

например:

/**********************

* Это тоже комментарий *

**********************/

Вторая строка содержит так называемую директиву препроцессора. В

отличие от других языков программирования обработка программы на Си осуществляется в два этапа: сначала программа обрабатывается препроцессором, т.е. некоторой программой, осуществляющей выполнение специальных директив. Затем она компилируется, т.е. обрабатывается программой, которая переводит текст программы с языка, понятного человеку, на язык машины. Оба эти этапа объединяются в одну программу и ее называют

компилятором.

Строки, содержащие директивы препроцессора, начинаются с символа #

(номера). Директива #NCLUDE осуществляет подстановку вместо себя текста, указанного в директиве файла (в данном случае файла с именем STDIO.*). Заключение имени файла в угловые скобки говорит о том, что поиск этого файла будет осуществляться в системном каталоге Си. В языке Си файлы с расширением .Х называются файлами-заголовками. Они содержат описание переменных, типов и т.д., которые пользуются многими программами. В данном случае в файле содержатся описания, необходимые для использования стандартной библиотеки ввода-вывода. Имя файла получилось от сокращения STA*DART INPUT-OUTPUT. Кроме включения файлов, процессор осуществляет еще подстановку значений, условную компиляцию и некоторые

другие действия.

Третья строка оставлена пустой для улучшения восприятия текста.

Четвертая строка содержит заголовок определения функции, в котором указывают имя функции (в нашем примере M*I*). В отличие от других языков программирования, в Си есть только один вид подпрограммы - функция. Даже основная программа тоже является функцией. Имя основной программы, т.е. той, с которой начинается выполнение в языке Си, должно быть обязательно *AIN. Поскольку у нас одна функция, то другого имени мы ей дать не можем. Скобки после имени указывают на то, что это - функция; внутри скобок описываются параметры. Поскольку в нашей программе параметров нет, то

скобки пустые, но они обязательно должны присутствовать.

Открывающаяся фигурная скобка в пятой строке говорит о том, что это

начало тела функции. Тело функции состоит только из одного оператора. Он выводит на экран сообщение «HELLO, *RIEND!». Поскольку нас не интересует значение, возвращаемое функцией, то мы его никак не используем, и оно

 

теряется. Заканчивается оператор точкой с запятой. Этот символ в языке Си, в

отличие от других языков программирования, не разделяет операторы, а

является частью оператора, поэтому точка с запятой здесь обязательна.

Закрывающаяся фигурная скобка в седьмой строке указывает на конец

тела функции, а в нашем случае и на конец программы.

Чтобы программу на языке Си можно было выполнить на компьютере, ее

сначала нужно обработать двумя программами: компилятором, который переведет написанный текст в машинные команды и проверит правильность написания программы; и сборщиком, который объединит программу с другими функциями и представит ее в форме, в которой она уже может быть запущена

на выполнение с помощью команд операционной системы.