range 屬性
[range]屬性可讓您為在執行時間設定其值之引數或欄位指定允許的值範圍。 與管道類型搭配使用時,屬性會指定管道區塊中元素計數的允許範圍。
[range(low-val,high-val)] type-specifier declarator
參數
-
low-val
-
參數或欄位可以保留的最低允許值。
-
high-val
-
參數或欄位可以保存的最高允許值。
-
type-specifier
-
宣告子
-
標準 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);
另請參閱