Referenz - SUBs
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  Parameterü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 (
Parameterü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 ( INTEGER,
INTEGER,  STRING, ...) bleibt aber gleich. Siehe
STRING, ...) bleibt aber gleich. Siehe  SUB für weitere Details zum Prozedurheader.
SUB 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  DECLARE,
DECLARE,  COMMON 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
COMMON 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  SHARED,
SHARED,  COMMON SHARED oder
COMMON SHARED oder  EXTERN deklarierten Variablen. Beachten Sie dazu den
EXTERN deklarierten Variablen. Beachten Sie dazu den  Gültigkeitsbereich von Variablen.
Gü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  DECLARE bekannt gemacht werden.
DECLARE bekannt gemacht werden.  CONSTRUCTOR- und
CONSTRUCTOR- und  DESTRUCTOR-SUBs die tatsächlich nur zu Beginn des Programms bzw. bei dessen Beendigung automatisch aufgerufen werden sollen, müssen nicht deklariert werden.
DESTRUCTOR-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
SLEEPSiehe auch:  FUNCTIONs
FUNCTIONs
| Zusätzliche Informationen und Funktionen | ||||
|---|---|---|---|---|
| 
 | ||||

 Wer ist online?
 Wer ist online? Buchempfehlung
 Buchempfehlung
 FreeBASIC-Chat
 FreeBASIC-Chat
 FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!
			FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!
 Versionen
 Versionen