Forum: Compiler & IDEs C Programmstruktur / Aufbau


von technikus (Gast)


Lesenswert?

Hallo,

ich bin absoluter Einsteiger in der C-Programmierung. Das Tutorial habe 
ich fast durch.
Was ich absolut nicht verstehe:
Schildern wir es am Beispiel von der LCD-Ansteuerung im Tutorial.
Hier steht etwas von der Datei "lcd-routines.h" und "lcd-routines.c".
Dazu fehlt mir der Zusammenhang. Oder anders ausgedrückt, wie binde ich 
diese Dateien ein? Was ist eine *.h Datei und wie kann ich mir den 
Zusammenhang erklären? Egal wo ich nach Infos suche, in allen C 
Tutorials die ich gefunden habe wird auf so etwas nicht eingegangen.
Vielleicht stelle ich mich aber als ehemaliger Bascom Benutzer viel zu 
blöd an :-(

Ich wäre um jede Hilfe dankbar.

Schönes WE !

Gruß
Technikus

von technikus (Gast)


Lesenswert?

Achso: Ich nutze AVR Studio mit WinAVR.

von Alex M. (t4nk)


Lesenswert?

Hallo,

in C brauchst du z.B sogenannte Prototypen! Zum Beispiel:

Hauptprogramm:

int main(){
  //Unterprogrammaufruf <- das ist ein Kommentar!
  test();

  return 0;
}

void test(){
  //....
}

Beim Compilieren sieht der Compiler die Fkt test, weiß aber noch nicht 
das es sie gibt, deshalb musst du ihm vorher sagen dass es sie gibt!!!!
Prototyp:

void test();

Diesen schreibst du vor main (vor die Funktion in der test bekannt sein 
muss)  oder in eine .h datei und bindest diese mit #include 
"dateiname.h" ein.

INCLUDE bewirkt dass alles was in der einbindenden Datei steht einfach 
eingefügt wird, so kennt jetzt der Compiler alle Funktionsprototypen und 
kann auch prüfen ob du sie richtig aufrufst.

Da gibt es noch viel mehr sachen die man in eine Header-Datei schreiben 
kann, schau dir einfach mal eine an.

mfg Alex

von Karl H. (kbuchegg)


Lesenswert?


von technikus (Gast)


Lesenswert?

@Kar heinz: Danke, den Link kannte ich nicht.

@Alex: Mal angenommen ich habe einen Quelltext für taster.h und einen 
für taster.c
Im Avr Studio gehe ich mit rechts Klick auf Source Files und wähle 
create new source file. Den File nenne ich dann taster.c und füge den 
Quelltext ein.
Wohin jetzt mit dem taster.h File?

Also eine *.h Datei ist eine header Datei. Organisiert diese quasi die 
dazugehörige *.c Datei?

DANKE für die Infos!

Gruß
technikus

von Karl H. (kbuchegg)


Lesenswert?

technikus wrote:
> @Kar heinz: Danke, den Link kannte ich nicht.
>
> @Alex: Mal angenommen ich habe einen Quelltext für taster.h und einen
> für taster.c
> Im Avr Studio gehe ich mit rechts Klick auf Source Files und wähle
> create new source file.

Nicht create. Add.
Du hast doch das File schon. Alles was du tun musst ist,
dem AVR Studio mitzuteilen, dass es auch noch zu diesem
Projekt mit dazugehört. Das ist dann schon alles.

 Den File nenne ich dann taster.c und füge den
> Quelltext ein.
> Wohin jetzt mit dem taster.h File?

Das taster.h File hast du im besten Fall am gleichen Verzeichnis
auf dem auch taster.c ist. Das muss im übrigen nicht das Verzeichnis
sein, auf dem deine Entwicklung stattfindet. Ich habe ein
Verzeichnis, in dem ich einige Hilfsfunktionalitäten als
C Code in mehreren Files organisiert habe. Das Verzeichnis
heist bei mir 'Common' um anzudeuten, dass es sich hier um
Funktionalitäten handelt, die von mehreren Projekten quasi
gemeinschaftlich benutzt werden kann.
Je nachdem was ich davon in einem Projekt brauche, werden dann
die entsprechenden Files (jeweils *.c und *.h) zum Projekt
hinzugefügt. Hinzugefügt, also 'Add existing file'.

> Also eine *.h Datei ist eine header Datei. Organisiert diese quasi die
> dazugehörige *.c Datei?

Ich weis nicht was du damit meinst.
In einem Header File ist alles enthalten, was einen Benutzer
der Funktionalität im *.c File interessiert. Dort sind die
Protoypen der Funktionen, die relevanten Datenstrukturen, Konstanten-
definitionen etc.

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
Noch kein Account? Hier anmelden.