Include Dateien doppelt angeben?!

#2186601
Lesenswert?

Weil find.c unabhängig von main.c compiliert wird.

Wenn find.c compiliert wird, weiß der Compiler nichts von dem was in 
main.c steht. Interessiert ihn auch nicht.
Wenn main.c compiliert wird, weiß der Compiler nichts davon, was in 
find.c steht. Interessiert ihn auch nicht.

Jedes *.c File wird für sich, und nur für sich alleine compiliert.
Gast #2186614
Lesenswert?

PEte schrieb:
> Gibt es eine Art extern Include? Ich muss Platz sparen :) Ich kann nicht
> jedes Include fünfmal in mein Programm aufnehmen.

du kannst sie auch 100mal reinschreiben, include dateien verbrauchen 
meist keinen Platz compilat. Damit sparst du also nichts.
Gast #2186617
Lesenswert?

PEte schrieb:
> Gibt es eine Art extern Include? Ich muss Platz sparen :) Ich kann nicht
> jedes Include fünfmal in mein Programm aufnehmen.

Das vergiss mal ganz schnell wieder ;-)

Ein Include braucht kein Platz, da in ihm keinerlei Definitionen (=das 
was Speicher belegt) drin stehen. Alles was Speicher belegt (=die 
implementierung von Funktionen, Variablen ) steht nur in der C-Datei und 
die wird nur einmal kompiliert.
Persönliche Seite #2186774
Lesenswert?

Karl Heinz Buchegger schrieb:
> Weil find.c unabhängig von main.c compiliert wird.
> ...
> Jedes *.c File wird für sich, und nur für sich alleine compiliert.

Selbst wenn man sie zusammen compilert, hilft das auch nix. Man kann dem 
Compiler nämlich auch mehrere Qulldateien mitgeben. Hilft aber -- wie 
gesagt -- nix.

Die Begründung ist, daß eine Deklaration (bzw. Definition) vor der 
Verwendung stehen muss. Und main.c ist eine andere Datei als foo.c. Wie 
das Zeug dem Compiler übermittelt wird, hat zur C-Semantik nix zu tun. 
(Wohl aber, wie effizient der Compiler den Code mit dem Zusatzwissen 
übersetzen kann.)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren