Язык C++ допускает использование не обязательных параметров функций по умолчанию. В среде Arduino если вы вызываете функцию с параметрами по умолчанию до её объявления в тексте программы, возникает ошибка.
Например,
void setup() {
Serial.begin(115200);
}
void loop() {
fn(7);
}
void fn(int x = 4) {
Serial.println(x * 2);
}
error: 'fn' was not declared in this scope
fn(7);
^~
exit status 1
'fn' was not declared in this scope
В этой ситуации поможет практика объявления функций до их использования или объявление виртуальных функций.
void fn(int x=4);
void setup() {
Serial.begin(115200);
}
void loop() {
fn(7);
}
void fn(int x) {
Serial.println(x * 2);
}
Скетч использует 1530 байт (4%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 188 байт (9%) динамической памяти