C++
Umfassende Erweiterung der Programmiersprache C; kompatibel in der Hinsicht, dass C fast vollständig als Teilmenge in C++ enthalten ist. Dadurch ist C++ ebenso wie C zur hardwarenahen Programmierung geeignet.
Im Gegensatz zu C unterstützt aber C++ die Methodik der objektorientierten Programmierung. Diese Methodik ist besonders geeignet, große, komplexe Programmsysteme unter Kontrolle zu halten, bzw. einen Baukasten aus Standardfunktionalitäten zu erstellen.
Ein detaillierter Vergleich von C und C++ unter besonderer Berücksichtigung der für die Programmierung von Mikrocontrollern relevanten Aspekte findet sich unter C vs C++.
Viele Compiler für Mikrocontroller bieten C++-Unterstützung an, allerdings ohne die C++-Standard-Bibliothek. Da in dieser Bibliothek auch die Operatoren 'new' und 'delete' definiert sind, sind diese häufig nicht verfügbar, können aber meist leicht nachgerüstet werden.
Im Falle von msp430-gcc, avr-gcc und anderen GCC-Portierungen müssen nur die operatoren new, new[], delete und delete[] überladen werden. Dazu sind lediglich die folgenden zwei Schritte notwendig:
1. Folgende Datei mit-kompilieren und -linken:
// newdelete.cpp extern "C" { #include <stdlib.h> } void *operator new(size_t size) { return malloc(size); } void *operator new[](size_t size) { return malloc(size); } void operator delete(void* ptr) { free(ptr); } void operator delete[](void* ptr) { free(ptr); }
2. Beim kompilieren von C++ Quellcode die folgenden Compileroptionen verwenden:
-fno-exceptions -fno-rtti
Hinweis: Nicht mit g++ sondern mit gcc kompilieren, da sonst libstdc++ gesucht und nicht gefunden wird.