共用方式為


陣列屬性

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 中實作。 最小陣列索引一律視為零。