Hallo Ich möchte eine lcd.c Datei schreiben die Funktionen enthält die von meiner main.c verwendet werden. Ich habe das jetzt gelöst, indem ich eine lcd.h Datei geschrieben habe die die Prototypen der lcd.c enthält Also so: **********main.c********** #include "lcd.h" ... void main(void) { lcd_init(); } **********lcd.h********** extern void lcd_init(void); **********lcd.c********** void lcd_init(void) { blablabla } Der Compiler scheint das so zu akzeptieren, aber ist das so auch "Normgerecht"? Mich wundert das ich nirgendwo #include "lcd.c" eingeben muß. Wie muß ich das machen wenn ich auch noch in lcd.c die delay Funktion aus main.c verwenden möchte? Brauche ich dann eine zweite Header Datei? Hab schon in meinem C Buch im Netz gesucht. Aber irgendwie verstehe ich die Ausführungen da nicht...
du könntest dir noch eine main.h basteln und die dann in der lcd.c includen. Eigentlich ist es gar nicht so schwer wenn man das Prinzip verstanden hat. Dein Projekt wird in 3. Schritten "compiliert" Als erstes wird die main.c zu einer main.o. Völlig unabhänig was in der lcd.c drinnensteht. Dann wird die lcd.c zu einer lcd.o. Völlig unabhänig was in der main.c drinnensteht. Als letztes kommt der Linker und wandelt die "Namen" in "Speicherstellen" um.
Nein, ein #include *.c gehört sich nicht. C-Compiler übersetzen C-Dateien als getrennte Module ("compilation units"), diese werden vom Linker zusammengefasst (dabei werden externe Referenzen, also Zugriffe auf Objekte in anderen Modulen oder Libraries aufgelöst) um das fertige Programm zu bilden. Literaturhinweis: Kernighan & Ritchie, "Programmieren in C", zweite Auflage, Hanser-Verlag
Rufus t. Firefly wrote: > Nein, ein #include *.c gehört sich nicht. > > C-Compiler übersetzen C-Dateien als getrennte Module ("compilation > units"), diese werden vom Linker zusammengefasst (dabei werden externe > Referenzen, also Zugriffe auf Objekte in anderen Modulen oder Libraries > aufgelöst) um das fertige Programm zu bilden. > > Literaturhinweis: Kernighan & Ritchie, "Programmieren in C", zweite > Auflage, Hanser-Verlag Empfehle ich auch. Btw: Ein Include holt nur den Inhalt aus der Datei und ersetzt ihn an der Stelle, wo das #include steht. Natürlich ist es somit auch möglich, .c Dateien zu inkludieren, aber, das ist wie schon gesagt, nicht Praxis.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.