Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [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 - SUBs

Referenz-Navigation

 

SUBs sind die einfachere Version einer Prozedur. Sie bestehen aus dem Prozedurheader, dem Programmcode und der abschließenden Zeile END SUB. Der Prozedurheader enthält die Liste der übergebenen Parameter (siehe BefehlsreferenzeintragParameterübergabe). Die im Header übergebenen Variablen werden wie bereits dimensionierte Variablen behandelt; sie können innerhalb der SUB nicht redimensioniert werden. Eine Ausnahme bilden dynamische Arrays. Sie können zwar redimensioniert werden, ihr Datentyp (BefehlsreferenzeintragINTEGER, BefehlsreferenzeintragSTRING, ...) bleibt aber gleich. Siehe BefehlsreferenzeintragSUB für weitere Details zum Prozedurheader.

Der Programmcode folgt denselben Regeln wie im Hauptmodul. Er darf fast alle Anweisungen enthalten und kann auch andere Prozeduren oder sogar sich selbst aufrufen (rekursiver Aufruf). Nicht verwendet werden dürfen die sogenannten 'nicht ausführbaren Anweisungen' wie BefehlsreferenzeintragDECLARE, BefehlsreferenzeintragCOMMON usw. Auch Präprozessoren sind auf Prozedurebene erlaubt. Variablen, die auf Modulebene deklariert wurden, stehen in der Regel innerhalb der Prozedur nicht zur Verfügung; eine Ausnahme bilden die über BefehlsreferenzeintragSHARED, BefehlsreferenzeintragCOMMON SHARED oder BefehlsreferenzeintragEXTERN deklarierten Variablen. Beachten Sie dazu den BefehlsreferenzeintragGültigkeitsbereich von Variablen.

Die Zeile END SUB markiert das Ende der Prozedur. Code, der hinter der Zeile END SUB steht, wird wie Modulebenen-Code behandelt.

Bevor eine Prozedur verwendet werden kann, muss sie im Programm bekannt sein. Soll eine Prozedur verwendet werden, bevor sie im Quellcode definiert wurde, dann muss sie dem Programm vor der Verwendung mit BefehlsreferenzeintragDECLARE bekannt gemacht werden. BefehlsreferenzeintragCONSTRUCTOR- und BefehlsreferenzeintragDESTRUCTOR-SUBs die tatsächlich nur zu Beginn des Programms bzw. bei dessen Beendigung automatisch aufgerufen werden sollen, müssen nicht deklariert werden.

Eine SUB wird direkt über ihren Bezeichner aufgerufen. Die Parameterliste kann beim Aufruf in Klammern stehen oder ohne Klammern angegeben werden.

Beispiel:

DECLARE SUB colortext (txt AS STRING, clr AS INTEGER)

colortext "blue", 1   ' oder mit Klammern: colortext("blue", 1)

'-----------------'

SUB colortext (txt AS STRING, clr AS INTEGER)
  #define a 10
  COLOR clr
  PRINT txt
END SUB

'-----------------'

FOR i AS INTEGER = 2 TO 15
  colortext "COLOR " & STR(i), i
NEXT
PRINT a   ' Fehler: a ist auf Modulebene nicht definiert
SLEEP

Siehe auch: BefehlsreferenzeintragFUNCTIONs


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 06.08.2007 von Redakteurytwinky angelegt.
  • Die aktuellste Version wurde am 13.01.2013 von Redakteurnemored gespeichert.
  Versionen Versionen