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++.