Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - IF (Meta)

Referenz-Navigation

 

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 BefehlsreferenzeintragIF...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. BefehlsreferenzeintragLBOUND/BefehlsreferenzeintragUBOUND auf fixe Arrays) bestehen, die zur Compile-Zeit bekannt sind. Ebenso eingesetzt werden können Befehlsreferenzeintrag#DEFINE-Symbole sowie die FB-eigenen Befehlsreferenzeintragvordefinierten Symbole.

Dieser Metabefehl ermöglicht es z. B., je nach Betriebssystem passende Header einzubinden (siehe Befehlsreferenzeintrag#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:
Befehlsreferenzeintrag#IFDEF, Befehlsreferenzeintrag#IFNDEF, BefehlsreferenzeintragIF...THEN, BefehlsreferenzeintragPräprozessoren, BefehlsreferenzeintragBedingungsstrukturen, BefehlsreferenzeintragPräprozessor-Anweisungen


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 29.07.2007 von AdministratorSebastian angelegt.
  • Die aktuellste Version wurde am 03.07.2013 von Redakteurnemored gespeichert.
  Versionen Versionen