05.01.2017 19:05 Количество просмотров материала 2420 Время на чтение ~2.5 мин
Увеличить | Уменьшить Распечатать страницу

Теория программирования — функции

Теория программирования — функции

Подпрограмма - это небольшой фрагмент кода основной программы, который выполняет определенное задание/действие.

Теория программирования — функции

В свою очередь подпрограммы делятся на два вида:

Функции (после выполнения возвращают в программу значения, полученные в результате выполнения самих себя);

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

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

Функция состоит из заголовка и тела функции.

Заголовок функции состоит из трех частей:

  • тип значения, которое возвращает функция. Например int. После выполнения, функция возвращает в программу, из которой её вызывали, целое значение. Для того, чтобы функция ничего не возвращала пишем тип void.
  • имя функции.Совет по поводу придумывания имен функций – имя должно нести смысл и быть осознанным, чтобы и другой человек, посмотрев на название функции – понял, что она выполняет. Например: void init_timer1 (void); void calk_different_variables (void);
  • типы и количество аргументов (параметров) функции (задаются в скобках).Иными словами в скобках указываются значения, которые будут переданы в функцию. Если же никаких параметров функция принимать не будет, то пишем void.

Далее в фигурных скобках задаём тело функции. Мы даём вводные того, как должна работать функция. Важный момент, если подпрограмма возвращает результат своей деятельности (какое-либо значение) то в конце тела функции должна стоять команда (инструкция) return.

Напишем небольшую программку.

Теория программирования — функции

Теперь представим, что созданная нами функция function_comparison  принимает два параметра (два аргумента) целого типа, которым присвоены имена w и d. В теле самой функции w и d используются, как обычные переменные. Параметры записанные в заголовке функции называются формальными.

Перед тем, как использовать функцию её необходимо объявить. Объявление обычно происходит после подключения файлов библиотек.

#include <_________ . h> - команда «приказывает» компилятору включить информацию из стандартной библиотеки в код будущей прошивки.

int function_comparison (int w, int d); - объявление функции.

После того, как в основной программе происходит вызов функции function_comparison (2,3); программа начинает искать объявление функцию с именем function_comparison, которая примет эти параметры. Параметры, что передаются в функцию в основной программе, называются фактическими параметрами.

Если объявления функции не было – программа не с компилируется, а если было – передаст управление вызываемой функции. После вызова, подпрограмма создаёт переменные и d и присваивает им значение 2 и 3. Когда всё выполнено – управление переходит к основной программе, а переменные и d удаляются.

Когда в основной программе происходит вызов функции function_comparison (a,b), то снова создаются переменные и d и им присваиваются значение переменных a и b (4 и 2 соответственно). Выполнение функции и выдача результата никак не повлияют на значение оригинальных переменных.

Еще один интересный момент. Область видимости переменных.

Переменные w и d доступны только внутри функции, в которой они объявлены (то есть в теле функции function_comparison). За пределами функции эти переменные не существуют.

Если представить, что какой-то злой рок произойдет и переменные с названием w и d будут объявлены в основной программ, и в функции function_comparison – не стоит беспокоится – это совершенно разные переменные и ничего общего между ними не будет.

При  объявлении функции  можно не указывать имена конкретных формальных параметров, а только их типы и количество.

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

Основное предназначение оператора return -  прекращения выполнения функции. Он схожий с оператором break в циклах.

Продолжение следует...

Картотека программирования

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]


Вверх