Christian Seiler: dynmische variablen in c++

Beitrag lesen

Hallo Martin,

Im Falle der C++-Bibliothek werden also (da man C++-Bibliotheken Funktionen überladen kann, in C-Bibliotheken nicht) noch Typinformationen an den Funktionsnamen angehängt, im Fall der C-Bibliothek nicht.

Ja, das ist richtig - wobei mir neu wäre, dass das mit dem Überladen zu tun hat, aber das lasse ich mal dahingestellt. Ich hatte nämlich bisher _gar_ keine Erklärung dafür. ;-)

Das ist die Erklärung, die ich kenne - und es ist auch die einzige, die wirklich sinnvoll ist. Die Forderung an ein Symbol in einer Bibliothek ist nämlich, dass dieses Symbol pro Bibliothek eindeutig sein muss (Ok, es ist nicht auf jedem Betriebsystem so, allerdings auf mindestens einem, auf dem C++ läuft) Wenn Du eine Funktion überlädst haben alle Varianten natürlich den gleichen Namen in der Programmiersprache - deswegen müssen die Symbole jedoch anders sein. Und selbst wenn das Betriebsystem mehrere Symbole mit dem gleichen Namen unterstützt - wie soll der Linker wissen, welches der Symbole zu welchem Prototypen passt?

Viele Grüße,
Christian