Video: Belajar C++ Episode #28 - Fungsi Dengan Kembalian (return) 2024
Apa yang berlaku apabila anda tidak prototaip? Seperti apa-apa dalam pengaturcaraan C, apabila anda pergi, pengkompil atau penyambung membolehkan anda tahu dengan mesej ralat - atau program itu tidak berjalan dengan betul. Ia bukan akhir dunia - tidak, seperti pengaturcaraan robot tentera atau merancang kod genetik untuk spesies baru Venus flytrap.
FUNGSI ASAS; NO RETURN
#include void prompt (); / * function prototype * / int main () {int loop; input input [32]; gelung = 0; semasa (gelung ");}
Latihan 1 : Ubah suai kod sumber dari Fungsi Asas Tiada Pulangan Komen prototaip dari Talian 3. Bina hasilnya
Kesilapan kompilator adalah perkara yang indah, menyenangkan tepat namun benar-benar samar.. Berikut adalah mesej ralat yang dihasilkan oleh Kod:: Blok, walaupun hanya bahagian yang berkaitan dengan mesej:
13 Peringatan: peringatan '23 Amaran: jenis yang bertentangan dengan' cepat '13 Peringatan: pernyataan tersirat sebelum' prompt 'di sini
Amaran pertama berlaku pada Talian 13 dalam fail kod sumber, di mana fungsi prom () digunakan di dalam utama (), pengkompil memberitahu anda bahawa anda menggunakan fungsi tanpa prototaip.Sebagai mesej ralat mengatakan, anda secara tersirat mengisytiharkan suatu fungsi.Ini adalah tidak-tidak, tetapi bukan ralat penuh. >
Amaran akhir adalah rujukan kembali ke mana fungsi dipanggil, sekali lagi di Baris 13.
Untuk meletakkannya ringkas: Pengkompil tidak tahu apa yang ada dengan fungsi prompt (). Kod anda dikompil, tetapi menjalankannya berisiko.
Latihan
2 : Edit kod sumber anda daripada Latihan 10-3. Keluarkan prototaip fungsi yang dimaklumkan di Baris 3. Potong dan tampal (gerakkan) fungsi prompt () daripada bahagian bawah kod asal Penyenaraian ke bahagian atas, di atas fungsi utama (). Simpan, bina dan jalankan. Mengelakkan Prototaip Fungsi menunjukkan penyelesaian untuk Latihan 2.
MENGHIDUPKAN PROTOTYPE FUNGSI
#include / * Paparkan prompt * / tidak sah prompt (kosong) {printf ("C: DOS>");} int main () {int loop; input input [32]; gelung = 0; sementara (loop <5) {prompt (); fgets (input, 31, stdin); loop = loop + 1;} return (0);}
Menulis fungsi utama () terlebih dahulu, diikuti dengan fungsi lain membolehkan pembacaan yang lebih baik, walaupun anda bebas untuk meletakkan fungsi anda terlebih dahulu untuk mengelakkan prototyping.Dan jika anda tidak, ingat bahawa pengaturcara lain mungkin melakukannya dengan cara itu, jadi jangan terkejut apabila anda melihatnya.
Mesej ralat pengadu dalam Kod:: Blok mempunyai kurungan selepasnya. Komen-komen tertulis merujuk kepada suis, atau pilihan baris perintah tradisional, yang membolehkan menyemak amaran tertentu. Contohnya, mesej ralat dari Latihan 1 dibaca penuh: 11 Amaran: perisytiharan tersirat fungsi 'prompt' (Pernyataan fungsi yang tidak jelas) 20 Amaran: jenis bertentangan untuk 'prompt' (diaktifkan secara lalai) >