Präprozessordirektive
Bevor der "Compiler" seine Arbeit aufnimmt, kommt noch der "Präprozessor" zum Einsatz. Der Präprozessor verändert den Quelltext nach bestimmten Eintragungen. Solche Eintragungen werden als "Präprozessordirektiven" bezeichnet und beginnen mit dem #-Symbol.
Die Direktive #include
"#include
"-Direktive werden verwendet, wenn externe Dateien eingebunden werden sollen.
Häufig stehen diese am Anfang des Quelltextes und binden Headerdateien ein.
Aber auch das Einbinden von anderen .c-Dateien ist möglich.
An der Stelle wo "#include
" auf eine externe Datei verweist, wird vom Präprozessor der Quelltext dieser externen Datei eingefügt.
#include <stdio.h> // <> = Standard Include-Verzeichnis vom Compiler
#include "datei.h" // "" = Relativer oder absoluter Pfad zur Datei
Die Direktive #define
Mit der "#define
"-Direktive können konstante Werte definiert werden.
Häufig werden diese eingesetzt um solche Werte tief im Quelltext zu vermeiden.
#include <stdio.h>
#define steuersatz 1.19 // 100% x 1.19 ergibt +19%
int main() {
float nettopreis = 6.2;
float produktpreis = nettopreis * steuersatz;
printf("Das Produkt kostet %f", produktpreis);
}
Die Nachkommastellen können je nach Verwendungszweck über andere Funktion nach Beliebigkeit angepasst werden.
Die "#ifdef
"-Direktive prüft, ob eine symbolische Konstante definiert wurde.
Ist die Prüfung positiv, wird der Code zwischen "#ifdef
" und "#endif
" nach der Direktive an den Compiler weitergegeben.
Die gegenwärtige Variante ist die Direktive mit "#ifndef
" (ist nicht definiert) und "#endif
".
Hier wird der Code nur ausgeführt, wenn die symbolische Konstante nicht definiert wurde.
Ein Beispiel wäre das Einbinden von Codebausteine auf unterschiedlichen Betriebssystemen, zuerst wird geprüft, ob der der Code definiert wurde und danach kann er entsprechend eingebunden werden.
Andere Einsatzgebiete sind der Umgang mit mehrsprachigen Anwendungen.
#ifdef SYMBOL
// Code, der nicht an den Compiler weitergegeben wird.
#endif
#define SYMBOL
#ifndef SYMBOL
// Wird ebenfalls nicht kompiliert.
#endif
#ifdef SYMBOL
// Wird kompiliert.
#endif
Zurück zur C Startseite Direkt zu Programmiersprachen