Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )


Referenz - FUNCTIONs

Referenz-Navigation

 

FUNCTIONs sind ebenso wie SUBs Prozeduren. Im Gegensatz zu einer SUB kann eine FUNCTION allerdings auch einen Wert zurückgeben. FUNCTIONs bestehen aus dem Prozedurheader, dem Programmcode, und der Zeile END FUNCTION. Der Prozedurheader und der Programmcode folgen den selben Regeln wie bei SUBs. Im Programmcode können andere FUNCTIONs und SUBs aufgerufen werden. Es ist auch möglich, die FUNCTION selbst aufzurufen. Solche sogenannten rekursiven FUNCTIONs sollten allerdings mit Bedacht eingesetzt werden, da sie oft schwer zu warten sind. FUNCTIONs werden im Programmcode wie Variablen behandelt, die abhängig von ihren Parametern verschiedene Werte haben. Sie werden durch ihren Bezeichner aufgerufen. Der Wert einer FUNCTION kann auf dreierlei Weise gesetzt werden:

Beispiel:

DECLARE FUNCTION twice (x)

FUNCTION twice (x)
   twice = x * 2
END FUNCTION

'Gibt 20 aus, das Doppelte von 10:
PRINT twice (10)

Eine rekursive FUNCTION:

DECLARE FUNCTION Fakultaet (BYVAL x AS INTEGER)

PRINT Fakultaet(6)
SLEEP

FUNCTION Fakultaet (BYVAL x AS INTEGER) AS INTEGER
   STATIC Erg AS INTEGER

   IF Erg = 0 THEN
      Erg = x
   ELSE
      Erg *= x
   END IF

   x = x - 1
   IF x = 0 THEN
      RETURN Erg
   ELSE
       Erg = Fakultaet(x)
   END IF

   FUNCTION = Erg
END FUNCTION

Der Parameter x kann dabei maximal 32765 sein, danach wird die Sub ergebnislos mit dem Fehler "Stack Overflow" abgebrochen. Das Ergebnis dieser Berechnung wäre allerdings weit über dem Wertebereich eines ULongInt.


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