Стало традицией, что в книгах, посвященных различным языкам программирования, в качестве самой первой приводится программа, выводящая на экран фразу: «Hello world!» («Привет, Мир!»). Ниже приведен текст такой программы на языке Си (листинг 1).
Листинг 1. Первая программа на Си
/* hello.c - первая программа на Си. */ #include <stdio.h> #include <conio.h> void main() { clrscr(); printf(“\n\nHello world!\n”); } |
Первая строка программы
/* hello.c - первая программа на Си. */
является комментарием и игнорируется компилятором языка Си. Комментарии начинаются с пары символов /* и заканчиваются парой символов */ и могут быть многострочными.
Две директивы #include (include – включать в себя) в начале программы являются указанием компилятору подставить на их место текст из файлов stdio.h и conio.h (standard input-output – стандартный ввод-вывод, console input-output – консольный ввод‑вывод). Эти подставляемые файлы содержат описания интерфейсов с функциями, включенными в две важные и широко используемые библиотеки. В эти библиотеки включены функции и макросы, обеспечивающие выполнение стандартных действий по вводу-выводу. Как видно из приведенной программы, функции управления вводом‑выводом вынесены из языка Си. Для осуществления операций ввода‑вывода программист может использовать библиотеки, поставляемые фирмами-изготовителями программного обеспечения, либо создавать такие библиотеки самостоятельно и пользоваться ими.
|
|
Строка исходного текста
void main()
описывает функцию main (main – главный), возвращающую пустое значение (void – пустой), или, иными словами, не возвращающую никакого значения, т.е., по аналогии с другими языками программирования, являющуюся процедурой. По требованиям Си функция main должна присутствовать в каждой программе, и она всегда предваряет исполнительную часть первого блока текста программы. Код, задающий тело функции main, заключается в фигурные скобки { и } – аналог ключевых слов begin и end в других языках программирования, например Паскале (begin – начало, end – конец).
Оператор clrscr() производит вызов функции, осуществляющей очистку экрана (clear screen – очистить экран). Курсор после очистки экрана переводится в первую позицию первой (верхней) строки экрана.
Оператор printf(“\n\nHello world!\n”) выводит строку «Hello world!» на экран (print – печатать). Последовательность управляющих символов в начале \n\n переводит курсор на экране дисплея на две строки вниз перед выводом строки символов, а заключительная \n на одну строку вниз после вывода.
Рисунок 15. Результат выполнения программы hello.c
Внимание! В отличие от Паскаля все ключевые слова языка Си, а также имена переменных, функций и т.д. чувствительны к регистру символов. Например, слова: include, void, main, clrscr, printf записаны правильно; Include, VOID, Main, ClrScr, printF записаны неправильно и приведут к ошибкам в программе. Кроме этого, наиболее типичными ошибками при наборе текста программ являются пропуск или запись лишних: − символов комментария; − скобок (угловых, круглых, фигурных); − кавычек; − точек с запятой. |
Поскольку программы на языке Си можно писать в свободном формате, то для обозначения конца каждого оператора требуется ставить специальный разделитель – точку с запятой. Компилятор языка Си не разбирается в стилях написания программ. Способы оформления программы служат для облегчения понимания программы человеком, поскольку программы в большей степени ориентированы на человека, чем на компилятор. Хорошее оформление программы способствует ее легкому чтению и понимания. Ниже (листинг 2) представлена та же самая программа, но при ее наборе не применялось форматирование. Компилятор легко понимает эту программу и результат ее выполнения такой же, как у исходного варианта, а вот чтение и понимание ее программистом вызывает значительные трудности. Программист должен чувствовать удовлетворение от вида хорошо оформленной программы и стремиться создавать именно такие программы.
|
|
Листинг 2. Пример текста программы на Си без форматирования
/* hello.c - первая программа на Си. */ #include <stdio.h> #include <conio.h> void main() {clrscr(); printf(“\n\nHello world!\n”);} |