atribut rentang
Atribut [rentang] memungkinkan Anda menentukan rentang nilai yang diizinkan untuk argumen atau bidang yang nilainya diatur pada durasi. Saat digunakan dengan jenis pipa, atribut menentukan rentang yang diizinkan untuk jumlah elemen dalam gugus pipa.
[range(low-val,high-val)] type-specifier declarator
Parameter
-
katup rendah
-
Nilai terendah yang diperbolehkan yang dapat ditahan oleh parameter atau bidang.
-
high-val
-
Nilai tertinggi yang diperbolehkan yang dapat ditahan oleh parameter atau bidang.
-
type-specifier
-
Jenis integral selain hyper atau __int64, pengidentifikasi jenis ke jenis integral, jenis enum , atau nama jenis pipa.
-
declarator
-
Deklarator C standar, seperti pengidentifikasi.
Keterangan
Gunakan atribut [range] untuk memodifikasi arti parameter atau bidang sensitif, seperti yang digunakan untuk ukuran atau panjang, dengan array yang sesuai atau bervariasi; atau kapan pun Anda ingin memeriksa nilai parameter atau bidang terhadap rentang nilai yang valid. Atribut ini berlaku untuk parameter tingkat atas serta parameter dan bidang tingkat bawah. Menambahkan atribut [range] ke jenis tidak mengubah format kawatnya, sehingga tidak memengaruhi kompatibilitas mundur.
Atribut [range] juga dapat digunakan pada data yang sesuai seperti buffer atau array dengan atribut kesuaian. Efeknya adalah membatasi semua ukuran kesuaian untuk data yang sesuai dengan rentang yang ditentukan. Jika data yang sesuai adalah array multi-dimensi, setiap dimensi array dibatasi pada rentang yang ditentukan.
Penggunaan [rentang] pada data yang sesuai mengharuskan target kompilasi menjadi â €"target NT60 atau lebih tinggi.
Perhatikan bahwa Anda harus menggunakan opsi kompilator /robust saat mengompilasi file IDL untuk menghasilkan kode stub yang akan melakukan pemeriksaan ini. Tanpa sakelar /robust , pengompilasi MIDL mengabaikan atribut ini.
Contoh
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);
Lihat juga