Referenz - IF (Meta)
Syntax:
#IF (Bedingung)
'...Programmcode
[#ELSEIF (Bedingung)
...]
[#ELSE
...]
#ENDIF
Typ: Metabefehl
Kategorie: Metabefehle
#IF leitet einen Mechanismus ein, der den nachstehenden Code nur compiliert, wenn die Bedingung erfüllt ist. Es kann ein alternativer Code angegeben werden, der unter anderen Bedingungen ausgeführt werden soll.
Grundsätzlich funktioniert der Metabefehl #IF genauso wie IF...THEN. Der Unterschied liegt darin, dass IF...THEN den Code lediglich nicht ausführt, wenn die Bedingung nicht erfüllt wurde, während er durch #IF gar nicht erst compiliert wird.
Die Bedingung darf nur aus solchen Ausdrücken und Befehlen (z. B. LBOUND/UBOUND auf fixe Arrays) bestehen, die zur Compile-Zeit bekannt sind. Ebenso eingesetzt werden können #DEFINE-Symbole sowie die FB-eigenen vordefinierten Symbole.
Dieser Metabefehl ermöglicht es z. B., je nach Betriebssystem passende Header einzubinden (siehe #INCLUDE) oder Variablen zu setzen. Dadurch wird die Portabilität zu verschiedenen Systemen gewährleistet.
Wenn die Bedingung nach #IF erfüllt (wahr) ist, wird der folgende Code compiliert. Die Befehle nach #ELSEIF und #ELSE werden übergangen. Andernfalls werden nacheinander die Bedingungen hinter den #ELSEIFs geprüft. Ist keine Bedingung wahr, wird der Code hinter #ELSE compiliert.
Beispiel:
#IF DEFINED(__FB_WIN32__)
#INCLUDE "ProjectWin.bi"
#ELSEIF DEFINED(__FB_LINUX__)
#INCLUDE "ProjectLinux.bi"
#ELSE
#ERROR "Plattform wird nicht unterstützt"
#ENDIF
Unterschiede zu QB: neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC:
Seit FreeBASIC v0.90 dürfen als Bedingung auch Befehle verwendet werden, solange sie zur Compile-Zeit ausgewertet werden können, während vorher nur Konstanten erlaubt waren.
Siehe auch:
#IFDEF, #IFNDEF, IF...THEN, Präprozessoren, Bedingungsstrukturen, Präprozessor-Anweisungen
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|