В одной из статей я уже давал определение функции, как объекту. Однако, подходя вплотную к изучению функций, стоит сделать это определение более точным и правильным.
Функция — это последовательность инструкций с возможностью многократного использования, предназначенная для выполнения определенных действий.
Как мы выяснили в предыдущих статьях, каждая программа имеет одну обязательную функцию main(). Внутри нее находятся все инструкции, последовательное выполнение которых приносит желаемые программистом результаты. Однако, по мере усложнения программ, только одной функции main становится мало. Код внутри нее становится длинным и неудобным для чтения и восприятия. Тогда возникает потребность в создании новых (пользовательских) функций или использовании функций, встроенных в стандартную библиотеку С++.
Как это происходит на практике?
Для начала представим абстрактный пример. Рабочий на производстве маркирует товар. В какой-то момент он прерывается и отвлекается на обед. Пообедав, он возвращается к своей работе, на то место, где закончил до обеда. Так же происходит и в С++ с функциями.
Посмотрите на этот простой пример.
Сразу после директив препроцессора на строке 4 мы создаем собственную функцию, которая при вызове будет печатать текст "Hello world".
После этого, мы создаем главную функцию main, внутри которой будет весь код нашей программы.
И прямо в этот код мы вызываем нашу пользовательскую функцию, просто написав инструкцию с ее именем.
Попробуйте написать этот код в своем редакторе, скомпилировать и запустить получившуюся программу.
Вы наглядно увидите, как функция запускается внутри функции.
На заметку:
Правила С++ не поддерживают вложенные функции. Это значит, что вы не сможете создать функцию внутри другой функции.
Следующий код в VISUAL STUDIO наглядно это демонстрирует. Попытка создать функцию внутри main выдает ошибку. Подсказка указывает на то, что требуется знак окончания инструкции. То есть редактор не видит вновь созданную функцию, а воспринимает строку 8 как неоконченную инструкцию.
Функции можно вызывать более одного раза.
Перепишите следующий код, скомпилируйте и запустите программу с ним. Вы наглядно увидите, как функция hello поздоровается и поинтересуется вашими делами два раза.
Любая функция может вызывать другую функцию.
Следующий пример кода запускает программу, которая так же здоровается с нами и узнает у нас: Как дела? Однако в этот раз она осуществляет все эти действия с помощью двух разных функций, одна из которых вызывает другую, а та вызывает третью.
Напишите следующий код себе, запустите и посмотрите результат.
На этом мы закончим. Сегодня мы подробнее познакомились с функциями. В следующей статье мы разберем возвращаемые значения функций. Подробнее познакомимся с типом значений void и подробно ответим на вопрос: Зачем в конце программы писать return 0;
Спасибо за внимание. Оставляйте реакции после прочтения. Подписывайтесь на канал, чтобы не пропустить новые материалы.