Servus,
hab mal wieder ein Problem. Ich soll für ein Praktikum in meinem Studium ein Programm vervollständigen. Da das Rahmenprogramm relativ komplex ist, habe ich genaue Anweisungen erhalten was zu machen ist.
Es geht darum, eine Queue in C zu implementieren.
Nun zu meinem Problem. Mir wird in der Anleitung aufgetragen eine neue .c Datei zu erstellen, in die ich dann eine Reihe von Funktionen einfügen soll (Neues Element erstellen, Element Löschen, Queue ausgeben etc.). Den Typ der Listenelemente muss ich aber in einer anderen .h Datei definieren und dann dementsprechend mit #include darauf zugreifen. Soweit kein Problem.
Im nächsten Schritt werde ich angewiesen den gesamten Inhalt der .c datei (nur Funktionen enthalten) in die .h zu kopieren. Begründet wird das wie folgt:
Dies ist erforderlich, damit die Signatur der Funktionen, also ihr
Rückgabetyp, ihr Name sowie die Anzahl und Typen der Argumente
dem Compiler beim verarbeiten der inkludierenden c.-
Datei bekannt sind. Diese Information wird benötigt um den
Übersetzungsvorgang korrekt ausführen zu können. Fehlt diese,
wird das Programm zwar möglicherweise erstellt, kann aber
fatale Fehlfunktionen beinhalten.
Nur leider funktioniert dann gar nix mehr. Wenn ich beide Versionen drin lasse meckert der Compiler die Funktionen wären doppelt definiert. Lasse ich nur die .h Datei drin, heißt es missing definition of function (...) . Lasse ich nur die .c Datei drin heißt es undefined reference to (...) .
Leider hab weder ich, noch meine Komillitonen ne Ahnung wie man das Problem behebt. In der Vorlesung wurde nichts dergleichen besprochen.
Den Code hier zu posten wäre denke ich sinnfrei, da das Problem ja von allgemeiner Natur ist und ich Copyright technisch nicht weis ob ich das darf.
Mfg
hab mal wieder ein Problem. Ich soll für ein Praktikum in meinem Studium ein Programm vervollständigen. Da das Rahmenprogramm relativ komplex ist, habe ich genaue Anweisungen erhalten was zu machen ist.
Es geht darum, eine Queue in C zu implementieren.
Nun zu meinem Problem. Mir wird in der Anleitung aufgetragen eine neue .c Datei zu erstellen, in die ich dann eine Reihe von Funktionen einfügen soll (Neues Element erstellen, Element Löschen, Queue ausgeben etc.). Den Typ der Listenelemente muss ich aber in einer anderen .h Datei definieren und dann dementsprechend mit #include darauf zugreifen. Soweit kein Problem.
Im nächsten Schritt werde ich angewiesen den gesamten Inhalt der .c datei (nur Funktionen enthalten) in die .h zu kopieren. Begründet wird das wie folgt:
Dies ist erforderlich, damit die Signatur der Funktionen, also ihr
Rückgabetyp, ihr Name sowie die Anzahl und Typen der Argumente
dem Compiler beim verarbeiten der inkludierenden c.-
Datei bekannt sind. Diese Information wird benötigt um den
Übersetzungsvorgang korrekt ausführen zu können. Fehlt diese,
wird das Programm zwar möglicherweise erstellt, kann aber
fatale Fehlfunktionen beinhalten.
Nur leider funktioniert dann gar nix mehr. Wenn ich beide Versionen drin lasse meckert der Compiler die Funktionen wären doppelt definiert. Lasse ich nur die .h Datei drin, heißt es missing definition of function (...) . Lasse ich nur die .c Datei drin heißt es undefined reference to (...) .
Leider hab weder ich, noch meine Komillitonen ne Ahnung wie man das Problem behebt. In der Vorlesung wurde nichts dergleichen besprochen.
Den Code hier zu posten wäre denke ich sinnfrei, da das Problem ja von allgemeiner Natur ist und ich Copyright technisch nicht weis ob ich das darf.
Mfg