1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 51 53 54 55 56

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

05.01.2017 в Программирование микроконтроллеров, Электронные самоделки

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

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

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

Процедуры (ничего не возвращают). Хочу сразу внести ясность, в Сишке процедура возвращает значение типа 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 в циклах.

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

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


  • RSS
  • Facebook
  • LiveJournal
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • В закладки Google
  • Blogger
  • Twitter

Прокомментировать

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

Мастер-классы | Как сделать | DIY | Handmade | Self made | Поделки | Своими руками | Карта сайта | Реклама

Всё что ты хочешь, ты можешь сделать САМ! Мы за созидание, развитие и свободное распространение знаний и личного опыта!

МозгоЧины - сообщество энтузиастов © 2010 – 2017

Перейти к верхней панели