Forum: PC-Programmierung Frage zu includes (die 1000.)


von Peter (Gast)


Lesenswert?

Ich hab grade den Artikel 
http://www.mikrocontroller.net/articles/Include-Files_(C) hier 
durchgelesen und irgendwie ist da noch eine sache fraglich nämlich:

a.c inkludiert datetime.h
b.c inkludiert datetime.h
a.c inkludiert nicht b.c
b.c inkludiert nicht a.c

Also: Frage ist das ein Fehler/Unvollständigkeit oder hab ich was falsch 
vertanden (der compiler liest ja nur einmal drüber). Ich würd jetz einen 
Fehler wie "a.c: the function 'initdate...' does not contain any code" 
erwartet (K.A. ob der compiler motz, oder ob man das beim Ausführen erst 
merkt)... oder schleisst der compiler iwie rückwärst durch das include 
in b.c auf die Verwendung (auf welches file muss ich dann den compiler 
loslassen?)

von Eddy C. (chrisi)


Lesenswert?

In datetime.h ist nicht die komplette Funktion enthalten, sondern nur 
der Hinweis, wie sie zu verwenden ist. Quasi nur die Spezifiaktion der 
Funktion. Sowas nennt man Prototyp einer Funktion und erkennt es am 
Strichpunkt nach dem Funktionskopf. Es wird nur Code erzeugt, der die 
Funktion, die im anderen Modul enthalten ist, anspringt.

>oder schleisst der compiler iwie rückwärst durch das include in b.c auf die 
Verwendung

Genau!

>(auf welches file muss ich dann den compiler loslassen?)

Auf beide. Der Linker fügt dann die beiden Module zu einem vollständigen 
Programm zusammmen.

von Karl H. (kbuchegg)


Lesenswert?

Peter schrieb:

> merkt)... oder schleisst der compiler iwie rückwärst durch das include
> in b.c auf die Verwendung (auf welches file muss ich dann den compiler
> loslassen?)

http://www.mikrocontroller.net/articles/FAQ#Ich_hab_da_mehrere_.2A.c_und_.2A.h_Dateien._Was_mache_ich_damit.3F

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.