range 屬性

[range]屬性可讓您為在執行時間設定其值之引數或欄位指定允許的值範圍。 與管道類型搭配使用時,屬性會指定管道區塊中元素計數的允許範圍。

[range(low-val,high-val)] type-specifier declarator

參數

low-val

參數或欄位可以保留的最低允許值。

high-val

參數或欄位可以保存的最高允許值。

type-specifier

hyper__int64以外的整數類型、整數型別的型別識別碼、列舉型別或管道類型名稱。

宣告子

標準 C 宣告子,例如識別碼。

備註

使用 [range] 屬性來修改敏感性參數或欄位的意義,例如用於大小或長度、符合規範或不同陣列的欄位;或每當您想要針對有效值範圍檢查參數或域值時。 屬性適用于最上層參數,以及較低層級的參數和欄位。 將 [range] 屬性新增至類型並不會變更其線路格式,因此不會影響回溯相容性。

[range]屬性也可用於符合性資料,例如具有一致性屬性的緩衝區或陣列。 效果是將一致性資料的所有一致性大小限制為指定的範圍。 如果一致性資料是多維度陣列,則每個陣列維度都會限制為指定的範圍。

在一致性資料上使用 [range] 需要編譯目標為 â\「target NT60 或更高版本。

請注意,當您編譯 IDL 檔案時,必須使用 /robust 編譯器選項,才能產生將執行這些檢查的存根程式碼。 若沒有 /robust 參數,MIDL 編譯器會忽略這個屬性。

範例

HRESULT Method1(
    [in, range(0,100)] ULONG m,
    [in, range(0,100)] ULONG n,
    [size_is(m,n)] ULONG **pplong);

void InPipe(
    [in, range(0, MAX_CHUNK) LONG_PIPE pipe_date);

另請參閱

介面定義 (IDL) 檔案

陣列

first_is

last_is

length_is

max_is

/魯 棒

size_is

switch_is