Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Нейбауэр А. Моя первая программа на С.doc
Скачиваний:
182
Добавлен:
02.05.2014
Размер:
3.75 Mб
Скачать

Структура программы

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

Все программы на Си (и Си++) должны начинаться с функции, называемой main(). Она выглядит так:

main()

Круглые скобки являются частью имени функции и ставить их надо обязательно, так как именно они указывают компилятору, что имеется в виду функция, а не просто английское слово main. В противном случае компиляция не будет завершена. Фактически каждая функция включает в свое имя круглые скобки, но в большинстве случаев в них содержится некая информация. В дальнейшем в тексте книги, ссылаясь на функцию, мы всегда будем ставить после ее имени круглые скобки.

Следом за main() вводятся инструкции. Инструкции могут быть представлены в виде стандартных команд и имен функций, содержащихся в библиотеках или написанных вами самостоятельно.

Прямая, или открывающая фигурная скобка ({) помещается перед первой инструкцией, а обратная, или закрывающая фигурная скобка (}) следует за последней инструкцией*. Таким образом, простейшая структура программы, написанной на языке Си, такова:

main() Функция, означающая начало программы — точку входа

{ Здесь начинается функция

………………......;

...........................; Здесь помещаются инструкции, которые должен выполнить компьютер

………………….....;

} Здесь функция заканчивается

Рис. 2.1. Структура программы на Си/Си++

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

При запуске программы компьютер начинает ее выполнение с первой инструкции функции main(). Ниже приведена завершенная программа на Си/Си++, которая выводит на экран монитора слово «OK»:

main()

{

puts("OK");

}

______________________________

* Последовательность инструкций, составляющих функцию, часто называют телом функции. (Прим.перев.)

Эта программа содержит всего одну инструкцию, которая, тем не менее, задана в строгом соответствии с правилами языка Си. Кавычки, отмечающие слово внутри круглых скобок не выводятся на экран. В языке Си они означают, что на экран следует вывести заключенную в них последовательность символов, а не константу или переменную, имеющую имя OK (о том, что такое константы и переменные вы узнаете в главе 3). Рис.2.1 иллюстрирует работу каждой части этой простой программы.

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

main()

{

puts("У меня все в порядке");

puts("А у тебя?");

}

Вышесказанное не означает, что точку с запятой надо ставить в конце каждой строки. Иногда инструкция занимает больше одной строки и в этом случае точку с запятой надо ставить только один раз, отмечая конец команды.

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

Си и Си++ являются языками свободного формата. Это означает, что для них не имеет значения, где будут помещены ограничители и начало строки. С таким же успехом можно написать программу следующим образом:

main(){puts("OK");}

и компилятор обработает ее так же, как и предыдущую. Но для того, чтобы сделать программу более читабельной, принято следовать определенным правилам:

  • помещать функцию main() на отдельной строке;

  • помещать фигурные скобки на отдельных строках;

  • создавать в тексте программы отступы с помощью табуляции. Когда ваша программа станет достаточно длинной, вы увидите, что с помощью отступов можно сделать более понятной структуру программы и выделить логические единицы.

Некоторые компиляторы выполняют функцию puts() без автоматического перевода строки. Дополнительную информацию можно найти в главе 4.

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

В то время как наличие или отсутствие пробелов не оказывает влияния на код, создаваемый компилятором, правильная расстановка всех знаков пунктуации имеет принципиальное значение. Если вы пропустите скобку, кавычку или точку с запятой, компилятор немедленно остановит работу и сообщит об ошибке. Такие ошибки называются синтаксическими, и для того, чтобы компилятор мог создать исполняемый код программы, вам придется исправить их.