C adalah bahasa yang dipreteli. Ini memberi Anda logam kosong. Ia bahkan tidak menyertakan fungsi untuk membaca dari keyboard atau menulis ke layar. Jika Anda menginginkannya, Anda harus membangunnya.
Segala sesuatu di luar dasar-dasar absolut ada di perpustakaan.
Anda tahu perpustakaan stdio. Ini menangani input dan output standar. Ada yang lain untuk matematika. Penanganan tali. Manipulasi waktu. Mereka ada sehingga Anda tidak perlu memikirkan kembali setiap kali Anda memulai proyek baru.
Tapi mengapa berhenti pada apa yang disediakan standar?
Memasukkan kode ke perpustakaan membuatnya dapat digunakan kembali. Ini memungkinkan Anda membagi program besar menjadi modul yang dapat dikelola. Lebih mudah untuk diuji. Lebih mudah untuk di-debug. Anda dapat menarik kode dari proyek lama Anda dan memasukkannya ke proyek baru tanpa menyalin-menempelkan blok logika.
Mari kita lihat cara melakukan ini.
Mengekstrak Logika Ke Fungsi
Ambil program C standar yang mengisi array dengan angka acak dan mengurutkannya. Ini kode mentahnya:
Kode ini melakukan tiga hal. Itu mengisi array dengan nomor acak. Itu mengurutkannya menggunakan bubble sort. Ini mencetak hasilnya.
Untuk membuat perpustakaan yang dapat digunakan kembali, kita perlu mengisolasi logika pengurutan.
Langkah Pertama: Generalisasi Pengurutan
Ekstrak kode pengurutan gelembung. Ubah itu menjadi sebuah fungsi.
Karena array a dan konstanta MAX bersifat global, fungsi ini tidak memerlukan parameter pada awalnya. Itu juga tidak perlu mengembalikan nilai. Cukup gunakan variabel lokal untuk x, y, dan t.
Sekarang perbarui main untuk memanggil fungsi ini alih-alih menjalankan loop inline.
Ini berhasil. Tapi itu masih terikat pada rangkaian global.
Langkah Kedua: Lewati Array
Kita dapat membuat fungsi pengurutan menjadi benar-benar umum. Lewati array itu sendiri sebagai parameter.
Tanda tangannya berubah menjadi:
Ini memberitahu kompiler untuk menerima array integer dengan ukuran berapa pun. Isi fungsinya tetap sama persis. Anda cukup memperbarui panggilan di main :
Perhatikan sesuatu yang aneh? Kita meneruskan a, bukan &a.
Meskipun fungsi sortir memodifikasi array, kita tidak memerlukan operator alamat di sini. Tampaknya berlawanan dengan intuisi jika Anda terbiasa dengan bahasa yang berdasarkan nilai. Anda mungkin bertanya-tanya mengapa ini berfungsi tanpa petunjuk secara eksplisit dalam panggilan.
Itu karena di C, array meluruh menjadi pointer ketika diteruskan ke fungsi. Fungsi ini menerima referensi ke awal array di memori. Itu sebabnya ia dapat mengubah data asli.
Memahami perbedaan ini adalah pintu gerbang untuk menguasai pointer. Tanpanya, perpustakaan C hanyalah blok kode statis. Dengan itu, Anda membangun sistem modular dan portabel.























