#IF ... #ENDIF-Präprozessordirektive
Ermöglicht die bedingte Aufnahme von Quellcode beim Kompilieren.
#IF nExpression1 | lExpression1Commands
[#ELIF nExpression2 | #ELIF lExpression2Commands...
#ELIF nExpressionN | #ELIF lExpressionNCommands]
[#ELSE
Commands]
#ENDIF
Parameter
#IF nExpression1 | lExpression1Commands
nExpression1 legt den numerischen Ausdruck fest, der ausgewertet werden soll.- Wenn der Ausdruck ungleich 0 ist, werden die Befehle direkt nach #IF in den kompilierten Code aufgenommen. Die #IF ... #ENDIF-Struktur wird verlassen, und die erste Programmzeile nach ENDIF wird kompiliert.
- Wenn der Ausdruck gleich 0 ist, werden die Befehle direkt nach #IF nicht in den kompilierten Code aufgenommen. Alle folgenden #ELIF-Direktiven werden ausgewertet.
lExpression1 Gibt den logischen Ausdruck an, der ausgewertet wird.
Wenn der Ausdruck Wahr (.T.) ist, werden die Befehle direkt nach #IF in den kompilierten Code aufgenommen. Die #IF ... #ENDIF-Struktur wird verlassen, und die erste Programmzeile nach ENDIF wird kompiliert.
Wenn der Ausdruck Falsch (.F.) ist, werden die Befehle direkt nach #IF nicht in den kompilierten Code aufgenommen. Alle folgenden #ELIF-Direktiven werden ausgewertet.
Anmerkung Geben Sie für nExpression1 oder lExpression1 keine Systemvariablen an. Systemvariablen werden erst beim Ausführen des Codes ausgewertet.
#ELIF nExpression2 | #ELIF lExpression2Commands
...#ELIF nExpressionN | #ELIF lExpressionNCommands
Wenn nExpression1 0 oder lExpression1 Falsch (.F.) ist, werden die #ELIF-Direktiven ausgewertet. Der erste #ELIF-Ausdruck nExpression2 oder gegebenenfalls lExpression2 wird ausgewertet. Wenn nExpression2 ungleich 0 oder lExpression2 Wahr (.T.) ist, werden die Befehle nach #ELIF in den kompilierten Code aufgenommen. Die #IF ... #ENDIF-Struktur wird verlassen, und die erste Programmzeile nach ENDIF wird kompiliert.Wenn nExpression2 gleich 0 oder lExpression2 Falsch (.F.) ist, werden die Befehle nach #ELIF nicht in den kompilierten Code aufgenommen. Die nächste #ELIF-Direktive wird ausgewertet.
#ELSE Commands
Wenn keine #ELIF-Direktiven aufgenommen werden oder wenn die Auswertung der aufgenommenen Direktiven 0 oder Falsch (.F.) ergibt, hängt es vom Vorhandensein von #ELSE ab, ob weitere Befehle in den kompilierten Code aufgenommen werden.- Wenn #ELSE vorhanden ist, werden die Befehle nach #ELSE in den kompilierten Code aufgenommen.
- Wenn #ELSE nicht vorhanden ist, wird keiner der Befehle zwischen #IF und #ENDIF in den kompilierten Code aufgenommen. Die #IF ... #ENDIF-Struktur wird verlassen, und das Kompilieren wird mit der ersten Programmzeile nach #ENDIF fortgesetzt.
#ENDIF
Kennzeichnet das Ende der #IF-Anweisung.
Hinweise
#IF ... #ENDIF-Strukturen können zur besseren Lesbarkeit des Quellcodes beitragen, die Größe des kompilierten Programms verringern und in manchen Fällen das Leistungsverhalten verbessern.
Beim Kompilieren der #IF ... #ENDIF-Struktur werden in der Struktur aufeinander folgende logische oder numerische Ausdrücke ausgewertet. Das Auswertungsergebnis bestimmt, welche Gruppe von Visual FoxPro-Befehlen gegebenenfalls in den kompilierten Code aufgenommen wird.
Beispiel
Im folgenden Beispiel bestimmt die #IF ... #ENDIF-Struktur, mit welcher Version von Visual FoxPro das Programm kompiliert wird und zeigt dann die entsprechende Meldung an.
#IF 'WINDOWS' $ UPPER(VERSION( ))
? 'This was compiled under Visual FoxPro for Windows'
#ELIF 'MAC' $ UPPER(VERSION( ))
? 'This was compiled under Visual FoxPro for Macintosh'
#ELIF 'UNIX' $ UPPER(VERSION( ))
? 'This was compiled under FoxPro for UNIX'
#ELSE
? 'This was compiled under FoxPro for MS-DOS'
#ENDIF
Siehe auch
COMPILE-Befehl | #DEFINE ... #UNDEF-Präprozessordirektive | #IFDEF | #IFNDEF ... #ENDIF-Präprozessordirektive