Engineering & HardwareOpen accessPublished 3 Oct 2026
Use when a growing .ino sketch shows a preprocessor-shaped symptom — "was not declared in this scope" for a function that's clearly defined below it, behavior that depends on which .ino file's code runs first, or a build that only breaks after splitting one sketch into several .ino files. Also for Arduino.h's function-like macros (abs/min/max/constrain/round/sq) misfiring on side-effecting arguments, and for deciding whether to keep growing a sketch in .ino files or move it into src/*.cpp — including the large single-file case, judged on coupling rather than file count. Not for PlatformIO/arduino-cli build configuration (arduino-toolchain) or redistributable library layou…