max_is 특성
[max_is] 특성은 유효한 배열 인덱스의 최대값을 지정합니다.
[max_is(limited-expression-list )]
-
limited-expression-list
-
하나 이상의 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];