jan schrieb:
> Also entweder ich includiere eine fremde Header, oder erstelle eine
> eigene Header und benutze extern.
>
> Wie macht man es denn normalerweise?
> Ich würde eigentlich zweiteres vermuten.
Nein, das erste. Genau dafür sind Header ja da - als Interface, in dem
alles steht, was von außen nutzbar sein soll.
jan schrieb:
> Aber wenn ich jetzt in file2.c file1.h includiere, dann habe ich ja alle
> Funktionen zur Verfügung, die in file1.h stehen (in meinem Beispiel ist
> es nur eine).
Ja, und? Daraus resultiert ja kein Zwang, sie aufzurufen. in stdio.h
sind auch sämtliche Funktionen, Makros und Typen, die zur
Standard-I/O-Funktionalität gehören. Wenn ich davon nur printf verwende,
geht die Welt nicht unter.
> aber mal angenommen in file1.h wären mehrere Funktionen und nicht alle
> werden in file2.c benötigt. includire ich dann Trotzdem file1.h?
Ja. Stell dir mal das andere Extrem vor: In file1.c sind 100 Funktionen
definiert, von denen du 30 in file2.c, 50 in file3.c und 70 in file4.c
benötigst. Würdest du dann in diesen drei Dateien all diese
Funktionsdeklarationen nochmal explizit hinschreiben, nur weil in keinem
davon alle 100 Funktionen genutzt werden?