Возврат значения из функции

Оператор returnВ предыдущей статье по программированию Arduino мы рассмотрели, как передать значение функции. Теперь посмотрим, как вернуть значение из функции.

Получение значения обратно из функции называется возвратом значения из функции (return). return используется в конце функции, чтобы получить значение обратно. Мы также должны указать, какой тип значения возвращает функция, например int , float и т.д.

В приведенном ниже примере скетча используется функция для выполнения математических вычислений. В конце вычисления возвращается результат расчета, который затем можно использовать в основном скетче Arduino.

Функция, возвращающая значение

Что происходит в скетче

Программа вычисляет площадь круга по значению радиуса круга, которое жестко запрограммировано в скетче — в примере скетча установлено значение 9,2, но вы можете установить любое значение, которое хотите. Затем результат вычислений отправляется из Монитор порта на экран терминал Arduino IDE.

Формула для расчета площади круга:

Получается что, если мы знаем радиус круга (радиус — это расстояние от центра круга до края круга), мы можем вычислить площадь круга.

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

Работа скетча

Функция CircleArea () должна возвращать значение, поэтому ей предшествует тип значения, которое она должна вернуть — в данном случае float. Значение с плавающей запятой, называемое радиусом, также передается функции, как объяснялось в предыдущей статье.

Внутри тела функции выполняется вычисление радиуса, и результат вычисления помещается в переменную result, которая является переменной, созданной в функции.

Затем функция возвращает результат, используя ключевое слово return в нижней части функции.

Формула переводится в код для Arduino следующим образом:

В той части скетча, которая вызывает функцию CircleArea (), функция в основном становится значением, которое она возвращает, и может быть присвоена переменной.

Переменной области присваивается значение, которое возвращает функция CircleArea ():

После этого результат вычисления, который представляет собой площадь круга, отправляется через Монитор порта для отображения в окне терминала Arduino IDE.

Укороченная версия скетча

Приведенный выше скетч можно написать более коротким способом без использования некоторых промежуточных переменных, как показано ниже:

В этом скетче функция CircleArea () возвращает результат вычисления в одной строке без предварительного присвоения его переменной.

Этот метод вычисления и возврата значения хорош, хотя читать код может быть не так просто, как в первом примере.

Когда в скетче вызывается функция CircleArea (), она передается в Serial.println (), как если бы это была переменная. Это возможно, потому что, когда функция возвращает переменную. Таким образом, укороченный скетч работает так же, как и первый скетч, хотя, опять же, его труднее читать.

Размер двоичного выходного файла (файл, который загружается в Arduino после компиляции) из компилятора Arduino составляет 4040 байт для обоих программ в Arduino IDE версии 1.0.6.

Вывод

Надеемся, что мы более-менее понятно объяснили вам как вернуть значение из функции. Как вы можете видеть, не так-то уж и сложно программирование на Ардуино. Главное понимание. В следующей статье поговорим о массивах в Ардуино.

С Уважением, МониторБанк

Оставьте комментарий

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