Atribut Array
Ada hubungan dekat antara array dan pointer dalam bahasa C. Saat diteruskan sebagai parameter ke fungsi, nama array diperlakukan sebagai penunjuk ke elemen pertama array, seperti yang ditunjukkan dalam contoh berikut:
/* fragment */
extern void f1(char * p1);
void main(void)
{
char chArray[MAXSIZE];
fLocal1(chArray);
}
Dalam panggilan lokal, Anda dapat menggunakan parameter pointer untuk berbaris melalui memori dan memeriksa konten alamat lain:
/* dump memory (fragment) */
void fLocal1(char * pch1)
{
int i;
for (i = 0; i < MAXSIZE; i++)
printf("%c ", *pch1++);
}
Ketika klien meneruskan pointer ke prosedur jarak jauh, stub klien mengirimkan pointer dan data yang dirujuknya. Kecuali penunjuk dibatasi untuk data yang sesuai, semua memori klien harus dikirimkan dengan setiap panggilan jarak jauh. Dengan memberlakukan pengetikan yang kuat dalam definisi antarmuka, MIDL membatasi pemrosesan client-stub ke data yang sesuai dengan pointer yang ditentukan.
Ukuran array dan rentang elemen array yang dikirimkan ke komputer jarak jauh dapat berupa konstanta atau variabel. Ketika nilai-nilai ini bervariasi, dan dengan demikian ditentukan pada durasi, Anda harus menggunakan atribut dalam file IDL untuk menentukan berapa banyak elemen array yang akan ditransmisikan. Atribut MIDL berikut mendukung batas array.
Atribut | Deskripsi | Default |
---|---|---|
[ first_is ] | Indeks elemen array pertama yang ditransmisikan. | 0 |
[ last_is ] | Indeks elemen array terakhir yang ditransmisikan. | - |
[ length_is ] | Jumlah total elemen array yang ditransmisikan. | - |
[ max_is ] | Nilai indeks array tertinggi yang valid. | - |
[ min_is ] | Nilai indeks array terendah yang valid. | 0 |
[ size_is ] | Jumlah total elemen array yang dialokasikan untuk array. | - |
Catatan
Atribut min_is tidak diimplementasikan dalam RPC. Indeks array minimum selalu diperlakukan sebagai nol.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk