Многие считают, что существует специальный «язык Arduino». На самом деле всё немного проще и интереснее: под капотом скрывается мощный C++, заботливо обернутый в удобную оболочку для новичков.
Содержание
Какой язык использует Arduino?
Вокруг языка программирования Arduino или ESP32 существует много путаницы. Термины вроде «язык Arduino» часто вводят в заблуждение, заставляя думать, что это проприетарная разработка. На самом деле всё гораздо прозаичнее.
Факт: Arduino использует C++ в качестве основного языка программирования.
Программная основа Arduino базируется на C++, а не на уникальном языке. Однако есть важные нюансы того, как C++ реализован в среде Arduino, которые делают его отличным от стандартного программирования на C++ для ПК.
Чем Arduino отличается от стандартного C++
Хотя код компилируется как C++, среда Arduino вносит несколько изменений, чтобы сделать процесс проще для новичков:
- Автоматическое включение библиотек: Файл
Arduino.hавтоматически подключается к каждому скетчу. Он дает доступ к функциям вродеdigitalWrite()илиpinMode(). - Упрощенная структура: Вместо функции
main(), скетчи полагаются наsetup()иloop(). - Ограниченные библиотеки: Из-за малой памяти микроконтроллеров многие тяжелые библиотеки C++ (вроде
<iostream>или<thread>) недоступны.
С++ и C: понимание взаимосвязи
Код Arduino часто напоминает чистый C из-за своего процедурного стиля. Но важно понимать: C++ — это “суперсет” (надмножество) языка C. Почти любой код на C успешно скомпилируется компилятором C++.
Смесь стилей
В Arduino вы можете писать как в стиле C (функции и структуры), так и в стиле C++ (классы и объекты). Основные библиотеки Arduino сами являются примером этой смеси:
- Стиль C: Функции
digitalWrite(),analogRead(). - Стиль C++: Объект
Serial(экземпляр классаHardwareSerial).
Как работает компилятор
Код, который вы пишете в Arduino IDE, перед отправкой на контроллер проходит процесс препроцессинга. IDE превращает ваш скетч в валидный файл на языке C++, добавляет необходимые заголовочные файлы и генерирует скрытую функцию main().
Поэтому, если вы захотите уйти от Arduino IDE в профессиональные среды (вроде VS Code + PlatformIO), вы обнаружите, что там уже нужно писать на “честном” C++ с явным подключением всех модулей.
Заключение
Arduino — это не новый язык, а удобный фреймворк на базе C++. Он скрывает сложность настройки железа за простыми именами функций, позволяя новичкам сосредоточиться на логике своего проекта.
💡 Краткая шпаргалка
Под капотом всегда компилируется C++ код.
Можно писать просто как на C или сложно как на C++.