mikrocontroller.net

Forum: Compiler & IDEs Ausgliederung Funktionen in externe Datei ?


Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ist es möglich mehrere Funktionen in eine externe Datei auszugliedern, 
die dann bei Compilieren automatisch eingebunden werden? (z.B. alle 
Funktionen zur LCD Ansteuerung)
Wäre nicht schlecht, da dadurch das Programm sehr viel 
kleiner/übersichtlicher wäre.
Vielen Dank für Eure Hilfe.

Gruß
Steffen

Autor: popei (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man strukturiert das ganze in *.c und *.h (Headerfiles)

in den H Files stehen die Funktionsdeklarartionen, in den c files die 
implementationen.

z.B.

foo.h

/* sample h file */

bool foo();

/* end of sample h file */


foo.c

/* sample c file */

#include "foo.h"

bool foo() {
return false;
}


Die main.c sieht dann so aus

/* sample main.c */

#include "foo.h"

main () {
    foo();
}

Ich hoffe ich hab nix übersehen jetzt auf die schnelle.

Autor: Jonas Diemer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es macht sinn, die Header-Files in einen Include-Guard einzuschließen:

#idndef MYHEADERFILE_H
#define MYHEADERFILE_H
//hier kommt der inhalt der header-datei
#endif // MYHEADERFILE_H

dies verhindert fehler beim mehrfachen includieren.

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
U. U. lohnt es auch, die Compilate der einzelnen Funktionen
in einer Bibliothek zusammenzufassen.  Der Linker holt sich
dann nur die Objektdateien aus der Bibliothek, in denen auch
etwas referenziert worden ist.

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.