FUNCTION

BASIC2006

(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}

© 2004 - 2012 tappertzhofen. Alle Reche vorbehalten.
Seitenanfang | Impressum