www.mikrocontroller.net

Forum: Compiler & IDEs Modularer Aufbau


Autor: tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe gerade meine Projektarbeit abgeschlossen und den C Code von einem 
Dozenten abnehmen lassen, zwecks Verbesserungsvorschlägen. Er meinte 
alles prima, allerdings würde er gerne sehen, dass ich das Programm noch 
modularer aufbaue, heißt,ich soll alle Funktionen die ich jetzt nach der 
Main Function, also in einer .c Datei stehen habe in eine seperate Datei 
packen, so dass die Funktionen außerhalb der Main in einer extra Datei 
liegen. Ich arbeite mit WinAVR und arbeite noch nicht lange mit C. Kann 
mir jemand sagen, wie ich das anstellen soll und ob ich dass überhaupt 
mit WinAVR hinbekomme?
Vielen Dank.

Autor: M. I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die separaten Dateien (weiß ja nicht wieviele Funktionen du in wie viele 
Dateien packen willst) müssen auch alle die Endung .c haben. Darein 
kopierst du den ausgelagerten Code. Dann schreibst du die 
Funktionsprototypen für die in einer .c-Datei enthaltenen Funktionen in 
eine Datei mit der Endung .h
(Headerdatei). Der Name der Datei vor dem Punkt muss derselbe sein.

Zum Beispiel hast du dann:

main.c (Hauptprogramm)
functions.c(Unterprogramme)
functions.h (Prototypen der Unterprogramme)

Nun bindest du in main.c einfach noch die functions.h ein, per include:

#include "functions.h"

Fertig.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fast.

Die .c-Dateien müssen noch ins makefile eingetragen werden, sonst 
meckert der linker. Am einfachsten geht das mit dem Programm MFile.

Oliver

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.