Преимущества использования #define для определения констант в Arduino-проектах:
- Экономия времени на написании команд и их изменении. 1 Можно «закодировать» коротким словом большую «длинную» конструкцию и писать в коде её, а не длинную. 1 Компилятор сам подставит «длинную» в нужные места перед компиляцией. 1
- Возможность один раз изменить значение подстановки в начале программы, и новое значение само подставится во всех нужных местах. 1
- Константы, определённые через директиву #define, не занимают места в памяти микроконтроллера, так как Arduino IDE подставит значения вместо имён при компиляции скетча. 4
Однако у использования #define есть и недостатки: компилятор не обеспечивает безопасность типа, что может привести к ошибкам, если случайно назначить константе значение неправильного типа. 2