Header-Datei mehrfach einbinden

Gast #5097271
Hallo,

ich habe mir mitlerweile ein paar Funktionen für einen Atmega 
zusammengeschrieben.
Die habe ich auch immer schön in .h und .c Files aufgeteilt und binde 
immer die Headerfile ein.

Ein Beispiel wäre SPI, also spi.h und spi.c.

Jetzt bin ich gerade dran, weitere Funktionen zu schreiben, die spi 
benötigen. Jetzt weiß ich allerdings nicht wirklich, ob das korrekt ist, 
wenn ich spi.h jetzt einfach in beiden einbinde.

Zum verdeutlichen:
main.c -> bindet spi.h und neu.h ein
neu.c -> bindet ebenfalls spi.h ein

Ist das so korrekt oder gibt es hier eine elegante Lösung, dass nur 
einmal eingebunden wird und die Funktionen auch in der neu.c verfügbar 
sind? (vl #ifdef?)

Ich hoffe ich versteht was ich meine und könnt mir weiterhelfen.
Danke
Gast #5097291
Jede c-datei wird für sich allein kompiliert.

Und es zählt nur das, was darin steht. Der präprozessor ersetzt 
#includes jeweils durch die originale Datei, kein vodoo, keine 
Absprachen sonstwo.

Schaue auch Mal nach include-guard Guarda. Für später.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.