Я просто процитирую документацию, так как они написаны лучше.
Написание C ++
Вы можете писать программы для платформы AVR на C ++,если вы включили c ++ во включенные языки во время настройки avr-gcc.Практически все, что описано в разделе «Программы написание C AVR», сначала прочтите это.
Основные недостатки использования C ++:
C++ calling convention side-effects
No libstdc++ support.
C ++побочные эффекты соглашения о вызовах
Некоторые функции C ++ автоматически генерируют подразумеваемый код, если это необходимо, что может тратить ценное пространство памяти программы и процессорное время.Например, если в какой-то момент в программе функции передается объект C ++ по значению:
void myfunction(MyCppClass object);
Вы получите сгенерированный конструктор копирования по умолчанию, который вызывается для создания временной копии используемого объекта.в моей функции ().Будьте осторожны, если это не то, что вам нужно: эквивалентное поведение должно быть достижимо путем передачи ссылки на постоянный объект MyCppClass, избегая при этом кода и накладных расходов при выполнении.
Отсутствует libstdc ++ и другие функции C ++
Ни один из стандартных шаблонов, классов или функций C ++ недоступен.Кроме того, операторы new и delete еще не реализованы.
Поддержка исключений C ++ также отсутствует.Возможно, вам понадобится использовать параметр компилятора -fno-exceptions, чтобы отключить исключения в интерфейсе C ++.
Что работает?Несмотря на то, что многие вкусности C ++, с которыми вы привыкли работать, недоступны, может оказаться целесообразным запрограммировать AVR на C ++.Конструкторы и деструкторы являются функциональными, и только организационные преимущества использования классов и объектно-ориентированного программирования могут сделать C ++ отличным выбором.