#include -Direktiven in C
Wenn bestimmte Programmteile in ihrer Standardbedeutung verwendet werden sollen, dann ist es nötig, bestimmte #include -Direktiven an den Anfang des Programms zu schreiben, damit die C -Implementation diese Programmteile kennenlernt.
main.c
#include <stdio.h>
int main( void )
{ printf
( "%s\n", "Hallo, Welt" ); }
Soll das Wort »printf« wie oben mit seiner Standardbedeutung zur Ausgabe verwendet werden, muß die include-Direktive »#include <stdio.h>« ganz am Anfang des Quelltextes ganz auf einer Zeile für sich stehen.
Weil es nötig werden könnte, weitere #include -Direktiven zu verwenden, kann Ausdruckrahmen um eine zusätzliche Lücke für diese erweitert werden.
- Ausdruckrahmen mit zusätzlicher Lücke für weitere include-Direktiven
#include <stdio.h>
...int main( void )
{ printf
( "%...\n", ... ); }
Formatierungsregeln
Die mit einem Nummernzeichen »#« beginnenden Präprozessordirektivzeilen sind eine Ausnahme von der allgemeinen Formatierungsfreiheit in C : Bei ihrer Verwendung sind Zeilenenden und Leerzeichen nicht austauschbar. Diese Präprozessordirektiven müssen jeweils auf einer eigenen Zeile stehen. Es ist also nicht gestattet, mehrere solche Direktiven in eine Zeile zu schreiben oder eine Direktive auf mehrere Zeilen aufzuteilen. (Spezielle Schreibweisen, welche dies in bestimmten Fällen doch erlauben, sollen hier noch nicht behandelt werden.) Am Ende der Zeile darf jedoch ein Kommentar stehen. Das wird manchmal verwendet, um den Grund für die include-Direktive zu vermerken.
main.c
#include <stdio.h> /* printf */
int main( void )
{ printf
( "%s\n", "Hallo, Welt" ); }
„Header “
Die Angaben mit den spitzen Klammern, wie beispielsweise »<stdio.h>«, werden auch als Header (aus dem Englischen) bezeichnet.
Fehler ohne Fehlermeldung
Wenn eine notwendige include-Direktive einmal vergessen wurde, dann bedeutet das nicht, daß das Programm sich deswegen anders verhalten muß oder eine C -Implementation den Fehler bemerken muß. Trotzdem ist das Programm dann fehlerhaft und es kann sein, daß sich das nach einer Änderung des Programms oder einem Wechsel der Implementation bemerkbar machen wird. Deswegen muß der Programmierer selber darauf achten, immer die passenden include-Direktiven zu verwenden.
Alle möglichen Direktiven „auf Vorrat“? *
Es ist übrigens in der Regel kein Fehler und meistens auch unschädlich, gleich immer alle möglichen Include-Direktiven „auf Vorrat“ an den Anfang eines Programms zu schreiben, höchstens könnte dies die Dauer der Übersetzung verlängern. Trotzdem achten viele Programmierer darauf nur die notwendigen Include-Direktiven zu verwenden, vielleicht auch, weil dies dokumentiert, welche Teile von Bibliotheken in einem Programm verwendet werden und welche nicht.
Häufige Fehler *
Häufiger Fehler Ein häufiger Fehler ist der Irrglaube, die #include -Direktiven würden Bibliotheken zum Programm hinzufügen. Zwar benötigt ein Programm tatsächlich meist Bibliotheken, doch die Standardbibliothek wird von der C -Implementation immer automatisch zu dem Programm gefügt. Richtig ist es vielmehr, daß die #include -Direktiven Beschreibungen von bestimmten Teilen (stdio.h, …) von Bibliotheken enthalten, welche dem Compiler sagen, welchen Typ bestimmte Namen (wie beispielsweise »printf«) haben. Ohne diese Information kann der Compiler das Programm nicht richtig verstehen, obwohl die Standardbibliothek sonst auch ohne die #include -Direktiven verfügbare wäre.
Häufiger Fehler Oft werden #include-Direktiven als „#include-Anweisungen“ bezeichnet. Es handelt sich aber nicht um Anweisungen im Sinne der Programmiersprache C.