陣列屬性
陣列與 C 語言中的指標之間有緊密關聯性。 當當做參數傳遞至函式時,陣列名稱稱會被視為陣列第一個元素的指標,如下列範例所示:
/* fragment */
extern void f1(char * p1);
void main(void)
{
char chArray[MAXSIZE];
fLocal1(chArray);
}
在本機呼叫中,您可以使用指標參數來進行記憶體,並檢查其他位址的內容:
/* dump memory (fragment) */
void fLocal1(char * pch1)
{
int i;
for (i = 0; i < MAXSIZE; i++)
printf("%c ", *pch1++);
}
當用戶端將指標傳遞至遠端程式時,用戶端存根會同時傳輸指標及其指向的資料。 除非指標受限於其對應的資料,否則所有用戶端的記憶體都必須與每個遠端呼叫一起傳輸。 藉由在介面定義中強制執行強型別,MIDL 會將用戶端存根處理限制為對應至指定指標的資料。
陣列的大小和傳送至遠端電腦的陣列專案範圍可以是常數或變數。 當這些值是變數,因此在執行時間決定時,您必須使用 IDL 檔案中的屬性來指定要傳輸的陣列元素數目。 下列 MIDL 屬性支援陣列界限。
屬性 | 描述 | 預設 |
---|---|---|
[ first_is] | 傳輸之第一個陣列專案的索引。 | 0 |
[ last_is] | 所傳輸之最後一個陣列專案的索引。 | - |
[ length_is] | 傳輸的陣列元素總數。 | - |
[ max_is] | 最高的有效陣列索引值。 | - |
[ min_is] | 最低的有效陣列索引值。 | 0 |
[ size_is] | 配置給陣列的陣列元素總數。 | - |
注意
MIN_IS屬性不會在 RPC 中實作。 最小陣列索引一律視為零。