|
|
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. [Bearbeiten] Weblinks |