IF (Meta)

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » I » IF (Meta)

Syntax:

#IF (Bedingung)
   '...Programmcode
[#ELSEIF (Bedingung)
   ...]
[#ELSE
   ...]
#ENDIF

Typ: Metabefehl
Kategorie: Präprozessoren

#IF leitet einen Mechanismus ein, der den nachstehenden Code nur kompiliert, 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. Daher darf Bedingung auch nur aus einfachen Ausdrücken (Ausdrücke, die nur Konstanten enthalten, und keine Variablen) bestehen. Ebenso eingesetzt werden können #DEFINE-Symbole sowie die FB-eigenen vordefinierten Symbole.

Dieser Metabefehl ermöglicht es z. B., je nach Betriebssystem passende C/C++ 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 kompiliert.

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

Siehe auch:
#IFDEF, #IFNDEF, IF...THEN, Präprozessoren, Bedingungsstrukturen, Präprozessor-Anweisungen