Hallo
Thomas F. schrieb:
Weil bei der Definition der Funktion deren Code erzeugt wird. Dies ist
im Gensatz zur Deklaration, wo nur angeben wird, dass es die Funktion
mit bestimmten Parametern und Rückgabetyp gibt. Die Headerdatei wird
i.d.R. in mehrere Sourcedateien eingebunden. Enthält sie
Funktionsdefinitionen, werden diese dadurch auch in den verschiedenen
Objektdateien erzeugt. Der Linker findet dann mehrere identische
Funktionen und gibt den oben angegebenen Fehler aus.
Leicht O.T.
Sicherlich sind deine Ausführungen korrekt und du scheinst dich auch angestrengt haben klar und deutlich zu erklären.
Aber:
Wenn man das (stellvertretend eigentlich für alle Texte und "Erklärungen" aus dem Umfeld) so durchliest:
Wer wundert sich eigentlich ernsthaft das es gefühlt Ewigkeiten dauert bis man auch nur andeutungsweise durchblickt wie Programmierung, ganz unabhängig von der jeweiligen Sprache, funktioniert - bis man andeutungsweise ein Bauchgefühl für Programmierung erlangt.
Das muss doch auch besser gehen - aber abgesehen von arg eingeschränkten "Kinderprogrammiersprachen" die meist auch noch Produkt bezogen sind und mit "echter" Programmierung wenig zu tun hat, habe ich bis jetzt noch keine Programmiersprache kennengelernt die man als erste "richtige" Programmiersprache einfach versteht und eine nachvollziehbare Alltagslogik hat sondern immer komische Konzepte, kryptische und doppeldeutige Bezeichnungen, 1001 Verweise, Abhängigkeiten über 20 Ecken usw.
Wenn man einmal irgendwie einmal das Konzept verstanden hat dann sind neue Programmiersprachen auch nur noch keines Problem - nur es dauert und zumindest von mir kann ich es nicht sagen wie, warum und wann ich die Konzepte und das komische "Denken dahinter" verstanden hatte.
(Bei mir hat es irgendwann mal Klick gemacht - aber was der Auslöser war kann ich nicht erklären -
Und was das Erklären angeht: Ich selbst könnte einen absoluten Anfänger auch nicht die Ideen und das komische Denken hinter "richtigen" Programmiersprachen erklären - scheinbar kann das wohl aber auch niemand wie ich es selbst erfahren musste)