max _ is attribute

Das [ Max _ ] is-Attribut gibt den Höchstwert für einen gültigen Arrayindex an.

[max_is(limited-expression-list )]

Parameter

limited-expression-list

Gibt einen oder mehrere C-Sprachausdrücke an. Jeder Ausdruck wird zu einer ganzen Zahl ausgewertet, die den höchsten 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 [ max _ ] is-Attribut entspricht nicht unbedingt der Anzahl der Elemente im Array. Für ein Array der Größe n in C, bei dem das erste Arrayelement die Elementnummer 0 ist, ist der Höchstwert für einen gültigen Arrayindex n–1.

Das [ max _ ] is-Attribut kann nicht gleichzeitig mit dem Attribut size als [ Feldattribut _ verwendet ] werden.

Es ist zwar legal, das [ max _ is-Attribut ] mit einem konstanten Ausdruck zu verwenden, dies ist jedoch ineffizient und unnötig. Verwenden Sie beispielsweise ein Array 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

Feldattribute

IDL-Datei (Interface Definition)

min _ is

size _ ist