Grundsätzlich hält sich übrigens C++ sehr strikt an den Leitsatz:
"You don't pay for what you don't need". Ein C++ Programm ist also per
se nicht grösser als ein C Programm, nur weil es mit einem C++ Compiler
compiliert wurde. Einzige Ausnahme (m.W.): Exception Handling. Das musst
(und kannst) Du im GCC explizit ausschalten, um keinen Overhead zu
bekommen.
Klar, dass ein C-Programm, wenn es von einem C++ Compiler compiliert
wurde, nicht grösser wird, kann man noch nachvollziehen. Aber das geht
wirklich sehr weit: Du kannst objektbasiert arbeiten, Klassen
definieren, Objekte instanziieren etcetc, und Du wirst feststellen, dass
so ein Objekt genau gleich gross ist wie die Struktur, die Du im C auch
hättest anlegen müssen, um die Daten zu verwalten. Sobald Du virtuelle
Methoden hast, werden die Objekte um genau so viel grösser, wie sie eben
grösser werden müssen. Wenn Du also so was ähnliches in C machen willst,
brauchst Du wiederum genau gleich viel Speicher.
--> Der Overhead von C++ gegenüber C ist nicht nur gering, sondern nicht
existent. Nur bietet es Dir Dinge einfach an, die dann halt etwas
kosten, und die Du in C auch machen könntest, allerdings komplizierter,
und die in C schlussendlich wieder genau gleich viel Ressourcen
benötigen wie die bequeme Variante in C++.
Gruäss
Simon