n
n
kVA
kVA
Compiler - Programmierung
14
f
f
#include
i
i
P
Hz
Hz
P
14.3 #include
178
Neben der Anweisung '#ifndef' gibt es auch die Anweisung '#ifdef' (ifdefined, wenn de-
finiert). Diese Anweisung kommt ohne eine Verneinung aus. Auch eine if-else-Konstruk-
tion ist möglich. Dies bedeutet, dass in dem Fall, in dem die Bedingung der '#ifdef' bzw.
'#ifndef'-Abfrage nicht erfüllt ist, der Anweisungsteil nach dem #else abgearbeitet wird.
Somit ergeben sich die folgenden Möglichkeiten:
#ifdef Bezeichner_1
Programmtext_1
#else
Programmtext_2
#endif
Es sei darauf hingewiesen, dass diese Präprozessor-Anweisungen nicht nur in Header-
Dateien verwendet werden können, sondern auch sinnvoll im Hauptprogramm einge-
setzt werden können. So lassen sich beispielsweise Programmteile anlagenspezifisch
übersetzen, ohne größere Änderungen im Quelltext vornehmen zu müssen.
Diese Direktive erlaubt das Einbinden von Quelltexten aus anderen Dateien (Header-
Dateien) in die Quelltext-Datei. Header-Dateien werden gewöhnlich dazu benutzt, um
mehrfach benutzte Konstanten oder Makros zu definieren und diese in verschiedenen
Projekten zu verwenden. Die Syntax lautet:
#include <DateiName>
DateiName ist der vollständige Name der einzubindenden Datei. Er wird in spitzen
Klammern eingeschlossen. Liegt die einzubindende Datei im aktuellen Verzeichnis, ge-
nügt die Angabe des Dateinamens ohne Pfadangabe
Die Datei BEISPIEL.IPC enthält das Hauptprogramm.
#include <CONST.H>
H10 = MAXIMUM_SPEED;
Der Präprozessor ersetzt die #include-Direktive durch den
Inhalt der Datei CONST.H:
#define MAXIMUM_SPEED 3000
H10 = MAXIMUM_SPEED
Nach der Makro-Erweiterung bleibt als Ergebnis:
H10 = 3000;
Die #include-Direktiven können auch verschachtelt angewendet werden, d. h. eine ein-
gebundene Datei kann wiederum eine #include-Direktive enthalten, um eine weitere
Datei einzubinden. Es ist darauf zu achten, dass sich Dateien nicht gegenseitig einbin-
den. Das führt zu einem Präprozessorfehler. Aus Gründen der Übersichtlichkeit sollte
man auf die Verschachtelung von #include-Direktiven verzichten.
#ifndef Bezeichner_2
Programmtext_3
#else
Programmtext_4
#endif
Die Datei CONST.H ist eine Header-Datei.
#define MAXIMUM_SPEED 3000
#ifdef Bezeichner_3
Programmtext_5
#endif
Handbuch – IPOSplus®