Referenz - ... (Auslassung[Ellipsis])
Die drei Auslassungspunkte werden anstelle von Prozedur-Parametern benutzt, um eine variable Anzahl von Argumenten zu übergeben.
Prozeduren
Die Auslassung (drei Punkte "...") wird in Prozedur-Deklarationen und Definitionen benutzt, um eine variable Argumentenliste anzugeben. Das erste Argument muss immer angegeben werden, und die Prozedur muss mit der 'C calling convention' CDECL aufgerufen werden.
Beispiel:
Declare Function FOO cdecl (x As Integer, ...) As Integer
Der Zugriff auf die Parameter wird über CVA_START, CVA_COPY, CVA_ARG und CVA_END ermöglicht. Ebenfalls möglich, allerdings nicht für alle Plattformen, ist die Verwendung von VA_FIRST, VA_ARG und VA_NEXT.
Arrays
Bei der Deklaration von Arrays kann die Auslassung verwendet werden, um die Größe des Arrays durch die Initialisierung festzulegen.
Beispiel:
dim a(1 to ...) as integer = {1, 2, 3, 4}
print ubound(a) ' Ausgabe: 4
sleep
Macros
In Makros wird die Auslassung verwendet, um Makros mit variabler Parameteranzahl zu erstellen.
Beispiel:
#include "crt.bi"
#define eprintf(Format, args...) fprintf(stderr, Format, args)
eprintf(!"Hello from printf: %i %s %i\n", 5, "test", 123)
#define car(a, b...) a
#define cdr(a, b...) b
PRINT "car (1, 2, 3, 4) = "; car(1, 2, 3, 4)
PRINT "cdr (1, 2, 3, 4) = "; cdr(1, 2, 3, 4)
SLEEP
Unterschiede zu QB: neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC:
- Seit FreeBASIC v0.22 können Auslassungen in Makros verwendet werden
- Seit FreeBASIC v0.21 können Auslassungen bei der Deklaration von Arrays verwendet werden.
Siehe auch:
CDECL, CVA_START, CVA_COPY, CVA_ARG, CVA_END, VA_FIRST, VA_ARG, VA_NEXT, Arrays, DEFINE (Meta), MACRO (Meta)
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|