Freigeben über


#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