C-Programm auf mehrere Module aufteilen
-
Hallo. Ich habe ein Problem. Ich muss ein komplettes lauffähiges Prog auf drei Module aufteilen.
Einmal die main, die die anderen Module nach und nach aufruft.
kann mir jemand eine allgemeine, nicht auf mein Bsp bezogene erklärung geben, wie man das hinbekommt ??
Vielen Dank im vorraus
-
Hmm,
die Frage ist komisch. Wie meinst du zerlegen? Meinst du, in Funktionen aufteilen, die von der main aufgerufen werden oder meinst du eine Zerlegung in mehrere Dateien, z.B. Dlls?
-
Ich denke er meint Funktionen.
Man könnte das z.B folgendermaßen lösen:
void funktion1(foo, bar); void funktion2(); int main() { //Funktionen nutzen etc. return 0; } void funtkion1(foo param1, bar param2) { //muss noch gefüllt werden } void funtkion2() { //muss noch gefüllt werden }
Andere Möglichkeiten wären, das in eine Header-Datei auszulagern oder die Funktionen vor der main() sofort zu implementieren.
-
Ich meine, dass prog in Funktionen auf verschieden *.c dateien aufzuteilen.
die dann von main() aufgerufen werden
-
Welchen Compiler benutzt du denn? Wenn du denn Visual C++ benutzt musst du einfach zum Projekt die *.c Datein hinzufügen. Dann noch eine *.h datei wo du die funktionen noch mal deklarierst (oder definierst? ich komm damit immer durcheinander). Dann kannst du die Funktionen in den externen Datein einfach aufrufen.
bsp.
main.c#include header.h int main(void) { int i = 5, j = 2, erg = 0; erg = mal(i, j); ... return 0; }
header.h
#ifndef __HEADER_H__ #define __HEADER_H__ int mal(int i, int j); #endif
funktion.c
int mal(int i, int j) { return i * j; }
Ist natürlich nicht getestet aber sollte glaub ich funktionieren.
hoffe konnte dir helfen
MfG schirrmie
-
Hallo!
Benutze die ersten beiden Zeilen von PuppetMaster2k (natürlich die richtigen Datentypen und Funktionsnamen einsetzen!
und schreibe die angegebenen Funktionen in extra .c-Dateien. Dann müssen alle Module zusammmengelinkt werden.
Ich kenne deinen Compiler nicht, aber mit dem GNU gcc funktioniert es wie folgt: gcc -c Datei1.c; gcc -c Datei2.c; gcc -o Programmname Datei1.o Datei2.o -lrary1; (angenommen library1.a wird benötigt und ist im Bibliotheks-Suchpfad)Mit freundlichen Grüßen
Linuxfreak
-
@schirrmie
In den Headerdateien stehen die Deklarationen der Funktionen. Die Definition ist die ausprogrammierte Funktion, also mit den Befehlen/Funktionen, die die Funktion ausführen soll. Die Deklaration ist nur die Bekanntmachung des Funktionsnamens, Rückgabewerts und der Parameter.Ansonsten wurde alles schon erklärt, wies geht.
-
@AJ Danke! Ich weiß das es die beiden Begriffe gibt und wo der Unterschied liegt aber ich merk mir immer nicht was zu wemm gehört! Naja sollte ich mir mal merken!
MfG schirrmie