Bevor ich mein Problem beschreibe, möchte ich hiermit viele Grüße an die Gestalter und "Mitmacher" dieser tollen Seite übermitteln. Mein letzter Kontakt mit Mikroprozessoren war vor gut 20 Jahren. Damals war es der gute alte Z80. Ich versuche nun seit einigen Wochen einem Atmega8 auf Assemblerebene ein bescheidenes Leben einzuhauchen (LED, LCD, i2c). Nun möchte ich es mit C versuchen, nicht zuletzt wegen der vorhandenen Bibliotheken. Dieses Forum, und auch das Tutorial, haben mir bei meinen ersten C-Schritten sehr geholfen. Aktuell habe ich zum Beitrag Beitrag "mehrere C files einbinden" folgendes Verständnisproblem: Warum wird in die Datei Funktion.c die Header-Datei Funktion.h includiert? Ist es nicht so, daß eine Funktion schon mit ihrer Definition auch schon deklariert ist? File: Funktion.h void foo( void ); File: Funktion.c #include "Funktion.h" void foo( void ) { // mach was } Es wäre nett, wenn mir jemand das erklären könnte. Danke im voraus und einen schönen Abend noch. Thomas
Hallo schau mal nach Prototypen.Das sollte das erklären. gruss andy
Thomas G. schrieb: > Warum wird in die Datei Funktion.c die Header-Datei Funktion.h > includiert? > Ist es nicht so, daß eine Funktion schon mit ihrer Definition auch schon > deklariert ist? Ja. Notwendig ist dieses Includieren hier nicht. Aber es ist von Vorteil, wenn man sich gleich angewöhnt es trotzdem immer zu machen. Denn so ist sichergestellt, dass die Definition in der C Datei und die Deklaration im Header auch wirklich zusammenpassen, denn andernfalls würde der Compiler gleich meckern.
Thomas G. schrieb: > Warum wird in die Datei Funktion.c die Header-Datei Funktion.h > includiert? Bei diesem sehr einfachen Beispiel ist es nicht wirklich erforderlich. In der Realität werden aber oft auch Typen deklariert, die für die Implementierung nötig sind, also z.B. typedefs, enums oder structs. > Ist es nicht so, daß eine Funktion schon mit ihrer Definition auch schon > deklariert ist? Ja, so ist es. Allerdings bietet das Einbinden der Headerdatei hier zumindest einen weiteren Vorzug: Weichen die Argumente oder der Rückgabewert einer Funktionsdefinition von der Deklaration ab, gibt es eine Fehlermeldung vom Compiler.
... danke für die prompten Antworten. Rufus Τ. Firefly schrieb: > Ja, so ist es. Allerdings bietet das Einbinden der Headerdatei hier > zumindest einen weiteren Vorzug: Weichen die Argumente oder der > Rückgabewert einer Funktionsdefinition von der Deklaration ab, gibt es > eine Fehlermeldung vom Compiler. ... dann hat man sozusagen noch einen "Quercheck", ob die Angaben stimmig sind. Danke nochmal ... Thomas
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.