Структура программы. Линейные операторы.

ВВОД-ВЫВОД ДАННЫХ

 

Программа на C++ состоит из одной или более функций. В главе 2 был приведен пример консольной программы Win32, состоящей из единственной функции main (), где main – имя функции. Каждая программа C++ стандарта ANSI / ISO должна содержать функцию main (). При этом, помимо обязательной функции main(), с которой начинается выполнение, программа может содержать некоторое количество других функций, задаваемых пользователем-программистом. Функция – это самодостаточный блок кода с уникальным именем, которое используется для запуска функции на выполнение. Консольная программа Win32, сгенерированная мастером создания приложений (Application Wizard), имеет главную функцию с именем tmain. По действующему соглашению в MS VS C++ главная функция должна называться main или wmain – в зависимости от того, использует программа символы Unicode или нет. Имена wmain и tmain специфичны для Microsoft. Имя же главной функции, отвечающей стандарту ISO / ANSI языка C++ – main. Далее будем использовать имя main во всех примерах ISO / ANSI C++.

Типичная программа командной строки может быть структурирована, как показано на рис. 17.

 

Когда вызывается функция, её выполнение начинается с начала
int main { input_names(); sort_names(); output_names(); return 0; }
void input_names() { // … return; }
void sort_names() { // … return; }
void output_names() { // … return; }
Возврат из main() попадает в операционную систему
Возврат из функции попадает в точку, следующую за местом, откуда она была вызвана

Рис. 17. Пример структуры программы

 

Из рис. 17 видно, что выполнение программы начинается с начала функции main(). Из main() управление передается функции input_names(), которая возвращает его в позицию, следующую непосредственно за той точкой, из которой она была вызвана в main(). Затем из main() вызывается функция sort_names() и, после возврата управления в main(), вызывается последняя функция output_names(). В конечном итоге, после завершения вывода, управление опять возвращается в main() и на этом программа завершается.

Конечно, разные программы могут иметь совершенно различную функциональную структуру, однако все они начинают выполнение с начала main(). Принципиальная выгода от разделения программы на функции состоит в том, что можно писать и отлаживать их по-отдельности. Есть и дополнительная выгода, которая заключается в том, что функции, написанные для выполнения определенных задач, могут быть повторно использованы в других программах. Библиотеки, поставляемые с C++, предоставляют множество стандартных функций, которые можно применять в своих программах. Они могут избавить программиста от огромного объема рутинной работы.

Более подробно использование функций будет рассмотрено в главе 7. Далее рассмотрим структуру программы, содержащую лишь функцию main().