void

Тип void означает, что функция ничего не возвращает — именно так объявляются setup(), loop() и вспомогательные процедуры без результата.

Полная статья

Описание

void — специальное ключевое слово, которое используется при объявлении функций. Оно сообщает компилятору, что функция выполняет какие-то действия, но не возвращает никакого результата. Именно поэтому void стоит перед именем функции вместо типа данных: возвращать попросту нечего.

В каждом скетче Arduino вы встречаете void с первых строк — функции setup() и loop() объявлены именно так. Они управляют поведением устройства, но не передают никакого значения обратно в вызывающий код.

Если функция должна что-то вернуть — число, символ, логическое значение — вместо void указывают соответствующий тип: int, char, bool и так далее. Но когда функция просто что-то делает (мигает светодиодом, отправляет данные, обновляет переменную), void — правильный выбор.

Попытка написать return someValue; внутри void-функции вызовет ошибку компиляции: компилятор знает, что возвращать значение здесь не предусмотрено.

Пример кода

Код показывает, как использовать void.

    // действия выполняются в функциях "setup" и "loop"
    // но никакая информация не возвращается в основную программу

    void setup() {
      // ...
    }

    void loop() {
      // ...
    }

Где применяется

  • setup() и loop() — стандартные функции Arduino, которые всегда объявляются как void.
  • Вспомогательные процедуры — например, функция blinkLED(), которая просто мигает светодиодом и ничего не возвращает.
  • Обработчики прерываний — функции, вызываемые по attachInterrupt(), обязаны быть void и не принимать параметров.
  • Функции вывода данных — например, отправка строки через Serial.println() внутри собственной обёртки.

Практические замечания

  • Если вы объявили функцию как void, не пишите в ней return someValue; — это ошибка компиляции. Пустой return; без значения допустим и используется для досрочного выхода из функции.
  • Когда функция должна передать результат вычисления обратно, замените void на нужный тип данных и добавьте оператор return.
  • Обработчики прерываний (ISR) в Arduino всегда должны быть void — это требование аппаратной архитектуры.
  • void нельзя использовать как тип переменной: void x; — недопустимая конструкция в Arduino/C++.

Полезные материалы