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

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

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

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

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

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

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

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

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

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

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

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

Your ads will be inserted here by

Easy AdSense Pro.

Please go to the plugin admin page to paste your ad code.

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

#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 в циклах.

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

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

ПОДЕЛИТЕСЬ С ДРУЗЬЯМИ!


About alexlevchenko

Ценю в людях честность и открытость. Люблю мастерить разные самоделки. Нравится переводить статьи, ведь кроме того, что узнаешь что-то новое - ещё и даришь другим возможность окунуться в мир самоделок.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

* Copy This Password *

* Type Or Paste Password Here *