Директива #define в Arduino — это заполнитель, с помощью которого компилятор заменяет все упоминания константы её значением во время компиляции. 2 Это означает, что значения, определённые с помощью #define, не занимают места в программе. 2
Директива const обозначает константы — переменные, значения которых нельзя изменить. 12 Они занимают место в памяти программы и имеют тип. 2
Таким образом, предпочтительнее использовать const вместо #define для определения констант. 2 Это позволяет, например, не непреднамеренно разрушить код программы, так как константы, в отличие от макросов, не вставляются во все подряд вхождения слова. 3 Также компилятор сообщит об ошибке, если пытаться использовать константу не того типа. 3