Type Data Array serta tipe data senyawa lainnya

Array, dan tipe data senyawa lainnya

Pada bagian ini, kita akan membandingkan tipe data C majemuk, seperti array, struct, dan serikat pekerja, dengan jenis senyawa Skema.Penciptaan dan akses data senyawa di C pada dasarnya terbatas pada array dan struct. Array set satu dimensi di mana setiap elemen memiliki tipe data yang sama. struct adalah pengelompokan jenis data sederhana dan tipe data senyawa yang memiliki pra-ditentukan struktur.Karena compiler C harus selalu tahu apa jenis data di masing-masing variabel, struct selalu dideklarasikan sebelum digunakan, seperti dalam typedef berikut.

Tipe data Array

Dalam Skema, tipe data senyawa tidak perlu memiliki struktur yang ditetapkan. Mereka dapat mengandung kombinasi data dalam urutan apapun. Karena fleksibilitas dari Skema, salah satu harus berhati-hati ketika melewati data bolak-balik dari C ke Guile. Guile tidak bisa lewat struktur data senyawa ke C tanpa tipu daya dan C menyepakati format mereka terlebih dahulu. Artikel ini akan memiliki diskusi tentang tipe data senyawa Guile, dan kemudian menunjukkan bagaimana data dapat melewati bolak-balik antara C dan Guile. Perhatikan bahwa sementara lewat struct kecil atau vektor bolak-balik antara keduanya adalah cukup efisien, itu adalah bentuk miskin untuk memiliki kode yang melewati struktur data yang besar. Hal ini akan mengakibatkan struktur muncul dalam memori baik di tumpukan C dan di memori Guile dikelola. Untuk data yang besar, yang terbaik adalah untuk beroperasi pada data secara eksklusif di C atau Guile. 

Jenis Compound data Guile 

Pair

Pair adalah kontainer data yang memegang tepat dua elemen. Elemen pertama adalah mobil dan elemen kedua adalah cdr tersebut. Elemen-elemen mungkin semua jenis data Guile, baik itu sederhana atau majemuk.Dalam prakteknya, pair adalah tipe tingkat rendah, dan biasanya digunakan dalam pembangunan yang lebih umum digunakan jenis-tingkat yang lebih tinggi, seperti daftar.

List

List ini Skema yang paling umum dan paling penting tipe data majemuk. Ini adalah vektor satu dimensi di mana setiap elemen mungkin semua jenis data Guile.List ini dibangun untuk menjadi seperti ditempa mungkin. Hal ini dapat tumbuh atau menyusut, ditambahkan, disambung, dan cincang. Versatlity ini datang pada biaya, namun. Waktu lebih lama untuk beroperasi pada elemen di kemudian dalam daftar orang-orang yang di awal.Unsur-unsur dari daftar dapat diakses seperti array C, atau dengan aplikasi mobil dan cdr perintah. Ketika daftar diakses seperti array C, itu adalah nol-diindeks, di mana elemen pertama dari daftar adalah elemen nol, dan elemen terakhir dari daftar panjang N merupakan unsur N - 1.Bergantian satu dapat menggunakan fungsi mobil dan cdr. Mobil dari daftar adalah elemen pertama. The cdr dari daftar adalah semua elemen kecuali yang pertama.Dengan ekstensi, elemen kedua dari daftar adalah mobil dari cdr daftar, yang disebut CADR dari daftar. Unsur ketiga daftar adalah mobil dari cdr dari cdr daftar, yang disebut caddr dari daftar.Segala sesuatu tetapi elemen pertama adalah cdr daftar. Segala sesuatu tetapi dua elemen pertama adalah cdr dari cdr daftar, yang merupakan cddr dari daftar. Segala sesuatu tetapi yang pertama tiga unsur adalah cdddr, dan sebagainya.

Vektor

Vektor ini juga koleksi satu dimensi di mana setiap elemen mungkin semua jenis data Guile. Tidak seperti daftar, vektor memiliki sejumlah set elemen, dan mungkin tidak tumbuh atau menyusut.Vektor tidak menderita dari masalah daftar di mana ia membutuhkan waktu lebih lama untuk referensi elemen nanti. Dibutuhkan jumlah yang sama waktu untuk mengoperasikan elemen vektor di mana pun mereka berada dalam koleksi.Vektor nol-diindeks, seperti C array.

Array konvensional

The Guile array seperti vektor di bahwa itu adalah wadah berukuran tetap benda, kecuali bahwa array dapat multidimensi.Secara default, array konvensional adalah nol-diindeks, namun, mereka dapat dinyatakan memiliki pengindeksan bilangan bulat lainnya.

Array Seragam

Array seragam adalah jenis khusus dari array di mana setiap elemen dari koleksi harus memiliki tipe yang sama. Karena tidak perlu menyimpan informasi tentang jenis setiap elemen dalam koleksi, array seragam mengambil sedikit memori yang array konvensional.Secara default, array seragam adalah nol-diindeks, namun, mereka dapat didefinisikan sehingga setiap dimensi memiliki skema pengindeksan yang berbeda.

List Asosiasi

Jika vektor adalah kumpulan mana setiap elemen dirujuk dengan indeks, list asosiasi adalah kumpulan mana setiap elemen direferensikan dengan string. Daftar asosiasi, atau alists mengumpulkan data menjadi "kunci" dan "nilai-nilai", di mana setiap nilai memiliki kunci yang dapat digunakan untuk mengatasinya.alists benar-benar hanya berisi mana setiap elemen adalah sepasang. Elemen pertama dari pasangan adalah kunci dan elemen kedua dari pasangan adalah nilai.Meskipun mereka tidak benar-benar tipe data yang terpisah, mereka disebutkan secara khusus karena ada fungsi Guile untuk mencari dan beroperasi pada alists.

Itulah artikel tentang Type Data Array serta tipe data senyawa lainnya. Dimana harapan saya bisa bermanfaat untuk semua, sekian dan terima kasih.

Baca juga: Contoh Program Sederhana Array
Baca juga: Artikel tentang FTP

Subscribe to receive free email updates: