Hallo, bisher benutze ich keine Headerdateien. Meine C Bücher schweigen sich allerdings darüber aus, was man sinnvollerweise hineinschreibt. So wie ich bisher gelesen habe, sollten dort Definitionen, globale Variablen ... definiert werden. Was schreibt Ihr so alles rein ? Ich möchte Sie möglichst als zentrale Konfigurationsdatei für die entsprechende *.c Funktion benutzen, um diese einfach für ein anderes Programm nutzbar zu machen, damit man nicht die ganze Funktion durchforsten muß, um z.B die Portadressen zu ändern. Gibt es irgend ein Standard oder eine Richtlinie ? Jogibär
Hallo Jogibär,
>bisher benutze ich keine Headerdateien.
Teilst du denn deinen Code im mehrere Dateien auf ?
Ich benenne die C-Datei die main() enthält nach dem Projekt.
Globale Variablen und Definitionen in "global.h".
Die einzelnen Programmteile bekommen je eine C- und eine Header-Datei.
Beispiel:
projekt.c
global.h
sram.h
sram.c
i2c.c
i2c.h
...
Gruß
Fiffi
Hallo, ich benutze komischerweise auch projekt.c als Hauptdatei für main. Normalerweise lege ich Konfigurationen für die einzelnen Funktionen in projekt.c fest. Auf die Dauer wird das etwas unübersichtlich. Deshalb würde ich die Definitionen für die einzelnen Funktionen gerne in der jeweiligen *.h Datei festlegen. Normalerweise kann ich ja machen was ich will, aber ich versuche möglichst den allgemeinen Standard einzuhalten. Deshalb meine Frage, ob es da irgendeinen gibt, bzw. was man so standardmäßig in die *.h Dateien reinschreibt. Jogibäa
Hallo Jogibär, >Normalerweise kann ich ja machen was ich will, aber ich versuche >möglichst den allgemeinen Standard einzuhalten. IMHO gibt es keinen Standard. >Deshalb meine Frage, ob es da irgendeinen gibt, bzw. was man so >standardmäßig in die *.h Dateien reinschreibt. Beispiel: Datei "i2c.h": extern unsigned char test_var; void i2c_init(void); void i2c_send(unsigned char data, unsigned char adr); Datei "i2c.c": #include "i2c.h" unsigned char test_var; void i2c_init(void) { ... } void i2c_send(unsigned char data, unsigned char adr) { ... } Gruß Fiffi
Hallo, interessant, daß sich um diese Zeit noch welche mit dem Programmieren beschäftigen . Ich bin anscheinend nicht der einzige, der ein wenig verrückt ist. Also, so ähnlich wie bei Dir habe ich es mir auch schon gedacht. Wenn es kein allgemein akzeptierten Standard gibt, dann werde ich es einfach nach gusto machen. Eine andere Frage, Du gibst in der Headerdatei den Funktionprototypen an. Das mache ich normalerweise nur, wenn der AVR-GCC mault. Hat man irgendwelche Vorteile, wenn man es normalerweise immer tut ?? Jogibär
Hallo Jogibär, >interessant, daß sich um diese Zeit noch welche mit dem >Programmieren beschäftigen . Ich zähle mich zu den Nachtmenschen ... >Du gibst in der Headerdatei den Funktionprototypen an. Ja, du musst Du Dich nicht um die Reihenfolge der Funktionen kümmern. Und Du musst die Funktionen deklarieren, wenn Du sie in anderen Quellcode Dateien verwenden möchtest. Beispiel, daß ohne vorherige Deklarationnicht funktioniert: void Funktion_1(void) { ... Funktion_2(); ... } void Funktion_2(void) { ... } Gruß Fiffi
Achso, ich deklariere normalerweise keine Funktionen in projekt.c. Sowas lege ich immer in externe Dateien, dadurch kann ich die einmal geschriebenen Funktionen immer gut wiederverwenden. Diese Funktionen binde ich dann ganz am Anfang der projekt.c mit include ein. Deshalb habe ich bisher keine Probleme gehabt. Nachts bin ich auch immer sehr produktiv, hat allerding den Nachteil, daß Mittag immer zum Frühstück mutiert. Jogibär
Hallo Jogibär, >Nachts bin ich auch immer sehr produktiv, >hat allerding den Nachteil, daß Mittag immer zum Frühstück mutiert. Das kenn ich auch ... Gruß Fiffi
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.