Ich beschäftige mich jetzt seit einiger Zeit mit C99 (hauptsächlich für numerische Berechnungen). Bislang habe ich immer nur kleinere Sachen programmiert, bei denen eine Aufteilung des Programmcodes in mehrere Dateien nicht notwendig war. Nun bin ich aber an einem Punkt angekommen, an dem es mir sinnvoll erscheint Teile des Codes zwecks der Übersicht auszulagern.
Bisher konnte ich in Erfahrung bringen, dass man zu einer Quellcodedatei "*.c" eine Headerdatei "*.h" erzeugt, in der man die Funktionen und Variablen deklariert, die in der Quellcodedatei definiert werden. Die Headerdatei wird dann mittels "#include" sowohl in die zugehörige Quellcodedatei, als auch in den Programmteilen, in die Funktionalität des ausgelagerten Quellcodes benötigt wird eingebunden.
Das Ganze dient wohl dazu, dass der Compiler immer nur die veränderten Quellcodedateien zu übersetzen braucht.
Nach dem Vorgeplänkel jetzt zu meinen eigentlichen Fragen:
Bisher konnte ich in Erfahrung bringen, dass man zu einer Quellcodedatei "*.c" eine Headerdatei "*.h" erzeugt, in der man die Funktionen und Variablen deklariert, die in der Quellcodedatei definiert werden. Die Headerdatei wird dann mittels "#include" sowohl in die zugehörige Quellcodedatei, als auch in den Programmteilen, in die Funktionalität des ausgelagerten Quellcodes benötigt wird eingebunden.
Das Ganze dient wohl dazu, dass der Compiler immer nur die veränderten Quellcodedateien zu übersetzen braucht.
Nach dem Vorgeplänkel jetzt zu meinen eigentlichen Fragen:
- Stimmt das oben Geschriebene?
- Kommen die Deklarationen von Funktionen bzw. Variablen, die ausschließlich in der zugehörigen Quellcodedatei benötigt werden auch in die Headerdatei und sollte in diesem Fall das Schlüsselwort static verwendet werden?
- Sollte man zu der Hauptdatei (in der main definiert ist) auch eine Headerdatei anlegen?