Syntax: OPTION Programmstandard
Typ: Anweisung
Kategorie: Programmorganisation
OPTION setzt verschiedene Standards in Ihrem Programm. Die Anweisung kann nur bis FreeBASIC v0.16 eingesetzt werden, oder in entsprechend höheren Versionen, die mit der Kommandozeilenoption -lang deprecated kompiliert wurden! Wird mit FreeBASIC v0.17 unter der Option -lang fb kompiliert, so ist OPTION nicht mehr zulässig!
'Programmstandard' ist eines von diesen Schlüsselwörtern:
- BASE
- PRIVATE (Schlüsselwort)
- BYVAL (Schluesselwort)
- DYNAMIC (Schlüsselwort) oder STATIC (Schlüsselwort)
- EXPLICIT
- ESCAPE
- GOSUB
- NOGOSUB
- NOKEYWORD
Dieser Befehl sollte nicht mit Option() verwechselt werden, siehe Option()
OPTION-Zeilen sollten die ersten Zeilen Ihres Programms darstellen, da eine Änderung eines Standards während des Programmverlaufs zu Problemen führen kann. Dieses Beispiel verdeutlicht die Problematik:
DECLARE SUB s1 (a AS INTEGER)
OPTION BYVAL
DECLARE SUB s2 (b AS INTEGER)
SUB s1(a AS INTEGER)
END SUB
SUB s2(a AS INTEGER)
END SUB
Der Versuch, dieses Programm zu kompilieren würde fehlschlagen. Während der Zeile
DECLARE SUB s1 (a AS INTEGER)
gilt OPTION BYVAL noch nicht; in dieser Zeile wird also noch angenommen, dass der Parameter 'a' BYREF übergeben wird. Der zugehörige Sub-Header
SUB s1(a AS INTEGER)
wird allerdings schon durch OPTION BYVAL beeinflusst; hier wird angenommen, dass 'a' BYVAL übergeben werden soll. Aufgrund des Unterschieds zwischen Deklarationszeile und Prozedurkopf gibt der Compiler die Fehlermeldung
error 55: Type mismatch, at parameter 1 (a) of s1()
SUB s1 (a As Integer)
aus.
Unterschiede zu QB:
Unter QB war nur OPTION BASE möglich.
Unterschiede zu früheren Versionen von FreeBASIC:
- Rufen Sie bitte die einzelnen Einträge auf, um die Versionsunterschiede für die verschiedenen Standards im Speziellen einzusehen.
- Erst seit FreeBASIC v0.14 gelten Programmstandards auch, wenn sie in Dateien festgelegt wurden, die per #INCLUDE eingebunden wurden.
- Seit FreeBASIC v0.17 können Programmstandards nur noch dann mit OPTION festgelegt werden, wenn die Kommandozeilenoption -lang deprecated angegeben wurde. Soll mit -lang fb kompiliert werden, ist es nicht mehr erlaubt, OPTION zu benutzen. Sehen Sie bitte die einzelnen Schlüsselwörter ein, um entsprechende Walkarounds nachzulesen.
Siehe auch:
Option()