Präprozessor

Include-Direktive

#include "<path>"
#include < <path> >

Die Direktive #include fügt den Inhalt einer anderen Datei ein. Die inkludierte Datei wird durch ihren Pfad referenziert. In der Regel wird er verwendet, um häufig verwendeten Code wie z. B. Bibliotheken zu "importieren". Das Verhalten ist dem des C-Präprozessors ähnlich.

Beispiel:

In dem folgenden Beispiel inkludiert die Datei a.nc die Datei b.nc ein. Bei der Ausführung von a.nc ersetzt der Interpreter intern die Include-Zeile durch den Text von b.nc. Daher hat die Ausführung des Programms a.nc die gleiche Wirkung wie die Ausführung des Programms c.nc.

FILE a.nc:

G01 X0 Y0 F6000
#include "b.nc"
G01 X0 Y100

FILE b.nc:

G01 Z-2
G01 X100
G01 Z2

FILE c.nc:

G01 X0 Y0 F6000
G01 Z-2
G01 X100
G01 Z2
G01 X0 Y100

Beispiel:

Das folgende Beispiel geht davon aus, dass die searchpath auf die Verzeichnisse c:\jjj und c:\kkk eingestellt ist. Die Datei aaa.nc besteht aus einer Reihe von #include-Direktiven, die im Folgenden erläutert werden.

FILE c:\mmm\aaa.nc:

#include "c:\nnn\bbb.nc"
#include "ccc.nc"
#include "ooo\ddd.nc"
#include "..\ppp\qqq\eee.nc"
#include <fff.nc>
#include <../rrr/ggg.nc>
Präprozessor 1:

Die mehrfache Inklusion einer Datei ist in der Regel eine schlechte Praxis. Vor allem, wenn diese Funktion dazu missbraucht wird, Code auszuklammern. Stattdessen sollte eine Funktion bevorzugt werden, um Code zu definieren, der mehrfach wiederverwendet wird (siehe Abschnitt Benutzerdefinierte Funktionen).

Beispiel:

In dem folgenden Beispiel inkludiert die Datei a.nc die Datei b.nc zweimal. Die zweite Inklusion wird immer, unabhängig von der einschließenden Bedingung, durch den Ausdruck IF-THEN erweitert. Die inkludierte Datei b.nc inkludiert selbst die Datei c.nc.

FILE a.nc:

G01 X100 F6000
#include "b.nc"
G01 Y100
! IF stVariable=47 THEN
#include "b.nc"
! END_IF;

FILE b.nc:

#include "c.nc"
G01 X0 Y0

FILE c.nc:

G01 Z0

Beispiel:

Die Datei x.nc demonstriert eine Reihe von ungültigen Include-Direktiven. Die ersten drei Zeilen verstoßen gegen die Regel, dass jede include-Direktive in einer eigenen Zeile stehen muss. In den Zeilen 4 und 5 ist der Dateiname nicht richtig in Anführungszeichen oder spitze Klammern eingeschlossen. In Zeile 6 ist eine nicht existierende Datei enthalten. Zeile 7 verstößt gegen die Regel, dass die include-Direktive immer an der ersten Stelle einer Zeile stehen muss. Zeile 8 inkludiert die Datei y.nc, die wiederum die Datei x.nc inkludiert. Diese Schleife wird als Fehler ausgegeben.

FILE x.nc:

#include "a.nc" G01 X100
! #include "a.nc"
#include "a.nc"    #include "b.nc"
#include a.nc
#include "a.nc>
#include "non_existing_file.nc"
    #include "a.nc"
#include y.nc

FILE y.nc:

#include "x.nc"