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

Referenz-Navigation

 

Syntax A:

DECLARE SUB Name [Aufrufkonvention] [OVERLOAD] [[LIB "DLLName"] _
      ALIAS "AliasName"] [ (  _
      [{BYVAL | BYREF } ] [{Parameter1 | ()}] AS Typ [= Wert]   [, _
      [{BYVAL | BYREF } ] [{Parameter2 | ()}] AS Typ [= Wert] ] [, ...] ) ]

Syntax B:

DECLARE FUNCTION Name [Aufrufkonvention] [OVERLOAD] [[LIB "DLLName"] _
      ALIAS "AliasName"] [ (  _
      [{ BYVAL | BYREF } ] [{Parameter1 | ()}] AS Typ [= Wert]   [, _
      [{ BYVAL | BYREF } ] [{Parameter2 | ()}] AS Typ [= Wert] ] [, ...] ) AS Rückgabetyp

Typ: Anweisung
Kategorie: Deklaration

Anmerkung zur Syntax: Unterstriche (_) am Zeilenende werden von FreeBASIC so interpretiert, als wäre die Zeile nicht unterbrochen; dies dient nur der besseren Übersichtlichkeit und hat letzt­end­lich keine Auswirkungen auf die Programmausführung.

DECLARE deklariert eine neue Prozedur. Dies ist notwendig, wenn die Prozedur aufgerufen werden soll, bevor sie im Quellcode definiert wird.

DECLARE wird auch bei BefehlsreferenzeintragUDTs verwendet, um einen BefehlsreferenzeintragCONSTRUCTOR bzw. BefehlsreferenzeintragDESTRUCTOR, eine BefehlsreferenzeintragPROPERTY oder die Überladung von BefehlsreferenzeintragOPERATORen zu deklarieren.

Werden Prozeduren vor ihrem ersten Aufruf definiert, dann ist keine vorherige Deklaration nötig. Jedoch kann eine kompakt zusammenstehende Deklaration aller im Programm auftretenden Prozeduren zur Lesbarkeit des Quellcodes beitragen.

Beispiel:

DECLARE FUNCTION twice (AS INTEGER) AS INTEGER
DECLARE SUB PrintTimes (AS STRING, BYVAL AS INTEGER = 1)

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

SUB PrintTimes (ToPrint AS STRING, BYVAL times AS INTEGER = 1)
  FOR i AS INTEGER = 1 TO times
    PRINT ToPrint
  NEXT
END SUB

PRINT "Das Doppelte von 42 ist: "; twice(42)
PrintTimes "Einmal"
PrintTimes "Zehn mal", 10
Sleep

Beispiel 2 mit anonymen Array-Parameter:

Declare Sub foo(() As Integer)

Dim As Integer bar(0 To ...) = {0, 1, 2}
foo(bar())
Sleep

Sub foo(array() As Integer)
  For i As Integer = LBound(array) To UBound(array)
    Print array(i)
  Next
End Sub

DECLARE-Anweisungen können direkt an den Beginn eines BAS-Moduls gesetzt werden. Häufig werden sie jedoch in eine eigene Datei ausgelagert und dann über Befehlsreferenzeintrag#INCLUDE eingebunden. Für gewöhnlich erhält eine solche Datei die Dateiendung .bi

Wenn eine Prozedur aus einer LIB/DLL eingebunden wird, muss ihr über die Klausel ALIAS ein Name zugewiesen werden, über den sie innerhalb des Programms angesprochen werden kann.

Unterschiede zu QB:
In FreeBASIC ist die Angabe der Parameternamen optional.

Unterschiede zu früheren Versionen von FreeBASIC:
Seit FreeBASIC v0.15 muss bei Prozeduren, die aus einer LIB/DLL eingebunden werden, mit ALIAS ein Name zugewiesen werden. In früheren Versionen konnte die Klausel ausgelassen werden; in diesem Fall wurde der Prozedurbezeichner als ALIAS-Name verwendet.

Unterschiede unter den FB-Dialektformen:

Unterschiede zu früheren Versionen von FreeBASIC:
Seit FreeBASIC v0.90 können in DECLARE-Zeilen die Namen von Array-Parametern ausgelassen werden.

Siehe auch:
BefehlsreferenzeintragSUB, BefehlsreferenzeintragFUNCTION, BefehlsreferenzeintragSTATIC (Klausel), BefehlsreferenzeintragPASCAL, BefehlsreferenzeintragCDECL, BefehlsreferenzeintragSTDCALL, BefehlsreferenzeintragBYVAL, BefehlsreferenzeintragBYREF, BefehlsreferenzeintragSHARED, BefehlsreferenzeintragLIB, BefehlsreferenzeintragALIAS, BefehlsreferenzeintragOVERLOAD, BefehlsreferenzeintragOPERATOR, BefehlsreferenzeintragEXPORT, BefehlsreferenzeintragProzeduren, BefehlsreferenzeintragParameterübergabe


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 17.07.2007 von RedakteurVolta angelegt.
  • Die aktuellste Version wurde am 02.07.2013 von Redakteurnemored gespeichert.
  Versionen Versionen