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 - CALL

Referenz-Navigation

 

Syntax: CALL Prozedurname ([Parameterliste])
Typ: Anweisung
Kategorie: Programmablauf

CALL ruft eine Prozedur (BefehlsreferenzeintragSUB oder BefehlsreferenzeintragFUNCTION) auf. Bei einer FUNCTION wird der Rückgabewert ignoriert.

Achtung: CALL existiert nur noch aus Gründen der Rückwärtskompatibilität. Der Befehl kann nur in den BefehlsreferenzeintragDialektformen -lang fblite, -lang deprecated und -lang qb verwendet werden. Es ist besser, CALL wegzulassen und die Prozedur direkt aufzurufen.

Die folgenden Beispiele funktionieren nicht in der Dialektform -lang fb

Beispiel 1:

#lang "fblite"

Declare Sub foobar(ByVal x As Integer, ByVal y As Integer)
Declare Function wert As Integer
Call foobar(35, 42)
Call wert   ' Funktion aufrufen, aber Rückgabewert ignorieren
Sleep

Sub foobar(ByVal x As Integer, ByVal y As Integer)
  Print x; y
End Sub

Function wert As Integer
  wert = 42
End Function

Beide Male hätte CALL weggelassen werden können; die 5. und 6. Zeile des Programms lauteten dann:

foobar(35, 42)
wert

Damit wäre das Programm auch mit -lang fb compilierbar.

Beispiel 2: Prozeduraufruf vor der Deklaration

#lang "qb"

Call mysub(15, 16)  ' "mysub" ist im Code zuvor noch nicht aufgetreten

Sub mysub(ByRef a As Integer, ByRef b As Integer)
  Print a, b
End Sub

Hinweis: Dieser Code funktioniert nur in -lang qb. Solange die Prozedur nicht deklariert wurde, findet außerdem keine Typ-Überprüfung der übergebenen Parameter statt. Der Programmierer muss selbst sicherstellen, dass es sich um die korrekten Typen handelt.

Unterschiede zu QB:
CALL erstellt in QB eine Kopie aller Parameter. Wenn die Parameter innerhalb der aufgerufenen Prozedur verändert werden, hat dies keine Auswirkung auf den Wert der Parameter außerhalb der Prozedur.

Unterschiede unter den FB-Dialektformen:

Siehe auch:
BefehlsreferenzeintragDECLARE, BefehlsreferenzeintragSUB, BefehlsreferenzeintragFUNCTION, BefehlsreferenzeintragProzeduren


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 29.06.2007 von MitgliedEternal_Pain angelegt.
  • Die aktuellste Version wurde am 26.12.2012 von Redakteurnemored gespeichert.
  Versionen Versionen