atribut const
Kata kunci const memodifikasi jenis deklarasi jenis atau jenis parameter fungsi, mencegah nilai bervariasi.
const const-type identifier = const-expression ;
[ typedef [ , type-attribute-list ] ] const const-type declarator-list;
[ typedef [ , type-attribute-list ] ] pointer-type const declarator-list;
[ [ function-attr-list ] ] type-specifier [ ptr-decl ] function-name(
[ [ parameter-attribute-list ] ] ) const;
const-type [declarator], [ [ parameter-attribute-list ] ] pointer-type const [declarator], ...);
Parameter
-
jenis const
-
Menentukan bilangan bulat, karakter, string, atau jenis Boolean MIDL yang valid. Jenis MIDL yang valid meliputi kecil, pendek, panjang, karakter, char *, wchar_t, wchar_t *, byte, byte *, dan void *. Bilangan bulat dan jenis karakter dapat ditandatangani atau tidak ditandatangani.
-
pengidentifikasi
-
Menentukan pengidentifikasi MIDL yang valid. Pengidentifikasi MIDL yang valid terdiri dari hingga 31 karakter alfanumerik dan/atau garis bawah dan harus dimulai dengan karakter alfabet atau garis bawah.
-
const-expression
-
Menentukan ekspresi, pengidentifikasi, atau konstanta numerik atau karakter yang sesuai untuk jenis yang ditentukan: literal bilangan bulat konstanta atau ekspresi bilangan bulat konstanta untuk konstanta bilangan bulat; Ekspresi Boolean yang dapat dihitung pada kompilasi untuk jenis Boolean ; konstanta karakter tunggal untuk jenis karakter ; dan konstanta string untuk jenis [string] . Jenis void * hanya dapat diinisialisasi ke NULL.
-
type-attribute-list
-
Menentukan satu atau beberapa atribut yang berlaku untuk jenis tersebut.
-
jenis penunjuk
-
Menentukan jenis penunjuk MIDL yang valid.
-
deklarator dan daftar deklarator
-
Menentukan deklarator C standar, seperti pengidentifikasi, deklarator pointer, dan deklarator array. Untuk informasi selengkapnya, lihat Array dan Sized-Pointer Atribut, array, dan Array dan Pointer. Daftar deklarator terdiri dari satu atau beberapa deklarator, dipisahkan oleh koma. Pengidentifikasi nama parameter dalam deklarator fungsi bersifat opsional.
-
function-attr-list
-
Menentukan nol atau lebih atribut yang berlaku untuk fungsi. Atribut fungsi yang valid adalah [callback], [local]; atribut pointer [ref], [unique], atau [ptr]; dan atribut penggunaan [string], [abaikan], dan [context_handle].
-
type-specifier
-
Menentukan pengidentifikasi base_type, struct, union, enum type, atau type. Spesifikasi penyimpanan opsional dapat mendahului type-specifier.
-
ptr-decl
-
Menentukan nol atau lebih deklarator penunjuk. Deklarator penunjuk sama dengan deklarator penunjuk yang digunakan dalam C. Ini dibangun dari penunjuk * , pengubah seperti jauh, dan konstan kualifikasi.
-
nama fungsi
-
Menentukan nama prosedur jarak jauh.
-
parameter-attribute-list
-
Menentukan atribut arah nol atau lebih, atribut bidang, atribut penggunaan, dan atribut pointer yang sesuai untuk jenis parameter yang ditentukan. Pisahkan beberapa atribut dengan koma.
Keterangan
MIDL memungkinkan Anda untuk mendeklarasikan jenis bilangan bulat, karakter, string, dan Boolean konstan dalam isi antarmuka file IDL. Deklarasi jenis const direprovasi dalam file header yang dihasilkan sebagai arahan #define.
Pengkompilasi IDL DCE tidak mendukung ekspresi konstanta. Oleh karena itu, fitur ini tidak tersedia saat Anda menggunakan sakelar / osf compiler MIDL.
Konstanta yang ditentukan sebelumnya dapat digunakan sebagai nilai yang ditetapkan dari konstanta berikutnya. Nilai ekspresi integral konstanta secara otomatis dikonversi ke jenis bilangan bulat masing-masing sesuai dengan aturan konversi C.
Nilai konstanta karakter harus berupa karakter ASCII yang dikutip tunggal. Ketika konstanta karakter adalah karakter tanda kutip tunggal itu sendiri ('), karakter garis miring terbalik (\) harus mendahului karakter tanda kutip tunggal, seperti dalam \'.
Nilai konstanta string karakter harus berupa string yang dikutip ganda. Dalam string, karakter garis miring terbalik (\) harus mendahului karakter tanda kutip ganda harfiah ( " ), seperti dalam \". Dalam string, karakter garis miring terbelakang (\) mewakili karakter escape. Konstanta string dapat terdiri dari hingga 255 karakter.
Nilai NULL adalah satu-satunya nilai yang valid untuk konstanta jenis void *. Atribut apa pun yang terkait dengan deklarasi const diabaikan.
Pengkompilasi MIDL tidak memeriksa kesalahan rentang dalam inisialisasi const . Misalnya, ketika Anda menentukan "const short x = 0xFFFFFFFF;" pengkompilasi MIDL tidak melaporkan kesalahan dan penginisialisasi direproduksi dalam file header yang dihasilkan.
Contoh
const void * p1 = NULL;
const char my_char1 = 'a';
const char my_char2 = my_char1;
const wchar_t my_wchar3 = L'a';
const wchar_t * pszNote = L"Note";
const unsigned short int x = 123;
typedef [string] const char *LPCSTR;
HRESULT GetName([out] wchar_t * const pszName );
Lihat juga