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.