Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Attribut [max_is] gibt den Maximalwert für einen gültigen Arrayindex an.
[max_is(limited-expression-list )]
Parameter
-
limited-expression-list
-
Gibt mindestens einen C-Sprachausdruck an. Jeder Ausdruck wird als ganze Zahl ausgewertet, die den höchst gültigen Arrayindex darstellt. Der MIDL-Compiler unterstützt bedingte Ausdrücke, logische Ausdrücke, relationale Ausdrücke und arithmetische Ausdrücke. MIDL lässt keine Funktionsaufrufe in Ausdrücken zu und lässt keine Inkrement- und Dekrementoperatoren zu. Trennen Sie mehrere Ausdrücke durch Kommas.
Bemerkungen
Das Attribut [max_is] entspricht nicht unbedingt der Anzahl der Elemente im Array. Für ein Array der Größe n in C, bei dem das erste Arrayelement element number zero ist, ist der Maximalwert für einen gültigen Arrayindex n–1.
Das Attribut [max_is] kann nicht gleichzeitig mit dem [size_is] -Attribut als Feldattribute verwendet werden.
Obwohl es legal ist, das Attribut [max_is] mit einem konstanten Ausdruck zu verwenden, ist dies ineffizient und unnötig. Verwenden Sie beispielsweise ein Array mit fester Größe:
/* transmits values of a[0]... a[MAX_SIZE-1] */
HRESULT Proc3([in] short Arr[MAX_SIZE]);
Anstelle von:
/* legal but marshaling code is much slower */
HRESULT Proc3([in max_is(MAX_SIZE-1)] short Arr[] );
Beispiele
/* if m = 10, there are 11 transmitted elements (a[0]...a[10])*/
HRESULT Proc1(
[in] short m,
[in, max_is(m)] short a[]);
/* if m = 10, the valid range for b is b[0...10][20] */
HRESULT Proc2(
[in] short m,
[in, max_is(m)] short b[][20];
Weitere Informationen