На каком языке программируется ардуино?

В учебнике прочитал, что ардуино программируется на C, но классы же разрешено использовать. А их в C нет. Так и не понял C или C++  используется для программирования в arduino ide.

Вот что пишут люди:

На официальном сайте пишут: "*...is programmed using the Arduino programming language (based on **Wiring**)*".  
Фактически — нет никакого особого языка программирования и программы пишутся на **C/C++**, а компилируются и собираются с помощью широко известного **avr-gcc** (в версии для Windows — [WinAVR](http://winavr.sourceforge.net/)).  
Все особенности сводятся к тому, что имеется набор библиотек, включающий в себя некоторые функции (вроде pinMode) и объекты (вроде Serial), а при компиляции Вашей программы среда разработки создает временный .cpp файл, в который кроме Вашего кода включается еще несколько строчек, и полученный результат скармливается компилятору а затем линковщику с нужными параметрами.



Программирование микроконтроллеров Arduino осуществляется на языке программирования C++.

Ардуино - по программной части это framework. Соответственно, при написании кода используются те методы и свойства, которые описаны в этом фреймворке. Язык - С++, что даёт возможность дополнить данный framework своими библиотеками, ровно как и полностью отказаться от них.

Программировать можно и С и на С++. Смотря как написан скетч и какими библиотеками пользоваться.

<https://habr.com/ru/post/55254/>