max_is 属性

[max_is] 属性は、有効な配列インデックスの最大値を指定します。

[max_is(limited-expression-list )]

パラメーター

limited-expression-list

1 つ以上の C 言語式を指定します。 各式は、最も有効な配列インデックスを表す整数に評価されます。 MIDL コンパイラは、条件式、論理式、リレーショナル式、および算術式をサポートします。 MIDL では、式での関数呼び出しは許可されず、インクリメント演算子とデクリメント演算子は許可されません。 複数の式をコンマで区切ります。

注釈

[max_is] 属性は、配列内の要素の数に必ずしも対応するとは限りません。 最初の配列要素が要素番号 0 である C のサイズ n の配列の場合、有効な配列インデックスの最大値は n から 1 です。

[max_is] 属性を [size_is] 属性と同時にフィールド属性として使用することはできません。

定数式で [max_is] 属性を使用することは有効ですが、これは非効率的で不要です。 たとえば、固定サイズの配列を使用します。

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

次のように記述する必要がありません。

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

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

関連項目

フィールド属性

インターフェイス定義 (IDL) ファイル

min_is

size_is