max_is (attribut)

L’attribut [max_is] désigne la valeur maximale d’un index de tableau valide.

[max_is(limited-expression-list )]

Paramètres

limited-expression-list

Spécifie une ou plusieurs expressions de langage C. Chaque expression prend la valeur d’un entier qui représente l’index de tableau valide le plus élevé. Le compilateur MIDL prend en charge les expressions conditionnelles, les expressions logiques, les expressions relationnelles et les expressions arithmétiques. MIDL n’autorise pas les appels de fonction dans les expressions et n’autorise pas les opérateurs d’incrémentation et de décrémentation. Séparez plusieurs expressions par des virgules.

Notes

L’attribut [max_is] ne correspond pas nécessairement au nombre d’éléments du tableau. Pour un tableau de taille n en C, où le premier élément de tableau est le numéro d’élément zéro, la valeur maximale d’un index de tableau valide est n–1.

L’attribut [max_is] ne peut pas être utilisé en tant qu’attribut de champ en même temps que l’attribut [size_is].

Bien qu’il soit légal d’utiliser l’attribut [max_is] avec une expression constante, cela est inefficace et inutile. Par exemple, utilisez un tableau de taille fixe :

/* transmits values of a[0]... a[MAX_SIZE-1] */ 
HRESULT Proc3([in] short Arr[MAX_SIZE]); 

plutôt que :

/* legal but marshaling code is much slower */ 
HRESULT Proc3([in max_is(MAX_SIZE-1)] short Arr[] );

Exemples

/* 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];

Voir aussi

Attributs de champ

Fichier IDL (Interface Definition)

min_is

size_is