www.mikrocontroller.net

Forum: Compiler & IDEs *.h Dateien - Wie sinnvoll nutzen ?


Autor: Jogibär (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Fiffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jogibär (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Fiffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jogibär (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Fiffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jogibär (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Fiffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.