FUNCTION
(redirected from BASIC2006.SUB)
Mit einer FUNCTION (oder auch SUB) kann man Routinen, die man öfters an mehreren Stellen des Programms benötigt, sozusagen in eigene funktionelle Blöcke auslagern. Diese Functions können dann von jeder beliebigen Programmstelle aus aufgerufen und verwendet werden. Man kann Functions in Form von sogenannten Parameter Werte und Variablen zur lokalen Verarbeitung übergeben und mit dem Schlüsselwort Return einen beliebigen Byte- oder Wordwert zurückgeben.
Das Abarbeiten von Functions kann mit dem Schlüsselwort Exit Function abgebrochen werden. Wichtig bei Functions ist der Abschluss mit END Function.
Wenn Sie mit einem älteren Controller arbeiten (1.x) können Sie mit dem OPTION Befehl die Zielplattform CC1.0 auswählen und so den Stack (wie gewohnt) für die Funktionsrückgabe verwenden. Sie ersparen sich damit zwei Byte Speicher.
Bemerkung:
Alternativ kann man ab Basic++ 2006 statt dem Schlüsselwort Function das Schlüsselwort SUB verwenden. Es gibt dabei keine Unterschiede.
Das Deklarieren von Functions durch DECLARE Function ist in Basic++ 2006 optional und muss nicht mehr gemacht werden.
Syntax:
Function Name ([Param As Datentyp | Param Ref Variable [, ...]]) [AS fType] ' ... [Return Ausdurck] End Function
Name: Erforderlich, Gültiger Bezeichner
Param: Optional, Gültiger Bezeichner für eine Parametervariable
Datentyp: Erforderlich, wenn kein Ref bei Parametervariable. Gültiger Datentyp
Variable: Erforderlich, wenn Ref bei Parametervariable. Bezeichner einer schon deklarierten Variable
fType: Optional, die Angabe des Datentyps der Funktion wird dann erforderlich, wenn hinter der Angabe der Parameter in den beiden Klammern das Schlüsselwort AS folgt. Hier kann der Rückgabewert der Funktion (erlaubt sind BIT, BYTE, WORD oder FLOAT). BIT, BYTE und WORD belegen jeweils 16-Bit im Stack und sind daher gleichwertig. Eine Funktion ist automatisch von diesem Rückgabetyp. Daher muss bei diesen Datentypen keine Abgabe des Rückgabetyps erfolgen. AS FLOAT ist erforderlich, wenn die Funktion eine Gleitpunktzahl zurückgeben soll. Ohne FLOAT kann die Funktion eine Gleitpunktzahl nicht korrekt zurückliefern.
Ausdruck: Optional, Term, Variable, Zahl oder Konstante als Rückgabewert
Beispiel:
Function Foo(x As Byte, y As Word) Return x + y End Function Print Foo(1,2) Function isEven(bWert As Byte) If bWert mod 2 = 0 Then Print "Der Wert ist gerade" return true 'wahr als Wert zurückgeben Exit Function ' Funktion abbrechen Else Print "Der Wert ist ungerade" return false 'falsch als Wert zurückgeben End If End Function If isEven(255) then Print "fertig"
Siehe auch: OPTION, {RETURNOFFSET}