[Powered by Google Translate] Fungsi bahagian-bahagian kod yang digunakan dalam program yang lebih besar
untuk melaksanakan tugas yang tertentu.
Mereka juga dikenali sebagai prosedur, subrutin, dan subprograms,
kerana mereka benar-benar hanya program mini dalam program.
Walaupun anda mungkin tidak perasan,
anda yang paling pasti telah menggunakan fungsi sudah jika anda telah diprogramkan ke dalam C.
Apabila anda menulis barangan ke skrin menggunakan printf,
anda sebenarnya menggunakan fungsi yang dipanggil printf.
Begitu juga, GetInt dan GetString adalah fungsi yang CS50 menyediakan untuk anda.
Sebagai pengaturcara, kita gunakan fungsi untuk beberapa sebab.
>> Mempunyai fungsi untuk melaksanakan tugas-tugas biasa seperti menulis kepada skrin
dan menyebabkan pengguna untuk input menyelamatkan kita masa apabila pengaturcaraan.
Ia tidak perlu untuk menulis kod untuk melakukan perkara-perkara yang sama
kerana mereka sudah dilakukan untuk kita.
Ia tidak malah perlu bagi kita untuk memahami dengan tepat bagaimana fungsi bekerja dalaman.
Sebaliknya, kita hanya perlu tahu bagaimana untuk menggunakan atau memanggil mereka dalam program-program kami.
Ia juga membantu untuk menulis fungsi dalam program-program yang lebih besar
walaupun anda tidak merancang untuk mempunyai yang lain menggunakan mereka,
hanya untuk membahagikan tugas yang lebih besar di tangan.
Cara ini, anda memberi struktur kepada kod anda sama seperti anda akan memberikan struktur kepada esei,
dan dengan projek-projek yang benar-benar besar anda membolehkan beberapa orang
untuk bekerja pada bahagian yang berbeza pada masa yang sama
kerana ia adalah jelas di mana kerja seorang berakhir dan satu lagi bermula.
>> Fungsi biasanya beroperasi pada 1 atau lebih input, yang dikenali sebagai hujah atau parameter,
mengubah input kepada nilai output yang kemudian kembali.
Walau bagaimanapun, ia juga mungkin mempunyai fungsi yang tidak menggunakan mana-mana hujah input
dan tidak kembali output.
Okay, cukup dengan barangan kembang.
Mari kita lihat pada beberapa fungsi sebenar dalam C.
>> Di sini kita mempunyai satu fungsi yang dipanggil persegi itu, percaya atau tidak,
mengira persegi input.
Marilah kita membedah sintaks.
Perkataan pertama yang anda lihat dalam fungsi, int,
menentukan jenis pulangan fungsi, iaitu, jenis C output fungsi.
Fungsi ini akan memaparkan nilai dengan int jenis.
Perkataan seterusnya yang anda lihat adalah nama fungsi, persegi dalam kes ini.
Menamakan fungsi sesuai adalah amat penting
kerana ia mungkin dokumentasi yang paling ketara apa fungsi tidak.
Ia mungkin sejuk untuk menamakan ini shazam fungsi atau booyah,
tetapi itu tidak akan memberitahu kita apa-apa tentang apa fungsi tidak.
>> Berikutan nama fungsi datang input kepada fungsi, hujah-hujah.
Mereka disenaraikan di dalam satu set kurungan
dengan kedua-dua jenis dan nama mereka untuk menggunakan mereka dalam badan fungsi.
Square mengambil hanya 1 hujah, int persegi,
yang saya telah memutuskan untuk memberi nama x.
Ini berakhir akuan fungsi atau prototaip.
Pendakap kerinting mengelilingi seluruh fungsi
menandakan permulaan dan akhir badan fungsi,
definisi fungsi sendiri.
Square adalah fungsi yang agak mudah.
Ia hanya mendapat 1 baris, kerana semua yang perlu kita lakukan adalah membiak x dengan sendirinya.
Pulangan perkataan menentukan nilai pengeluaran dan mencetuskan akhir fungsi.
Untuk menggunakan fungsi persegi, kita perlu untuk membekalkan input yang sesuai
dan kemudian menangkap output.
Di sini, anda melihat beberapa cara untuk berbuat demikian.
Kita boleh lulus dalam int mentah, seperti 6, atau kita boleh lulus dalam pembolehubah seperti.
Perhatikan bahawa setiap kali kita panggil persegi,
kita menangkap output dalam pembolehubah dan kemudian mencetaknya.
Walau bagaimanapun, kita tidak perlu untuk menyimpan nilai pulangan dalam pembolehubah dan kemudian mencetak.
Kami hanya boleh menghantar ia secara langsung printf sebagai kita lakukan apabila kita persegi 10,
tetapi ini tidak bermakna bahawa kita tidak mempunyai akses kepada nilai pulangan persegi 10
tempat lain dalam kod.
Mari kita melihat satu lagi contoh mudah.
>> Kali ini, kami akan meringkaskannya 2 terapung bersama-sama supaya kita boleh melihat apa fungsi kelihatan seperti
apabila ia mendapat 2 input dan bukannya hanya 1.
Seperti yang anda boleh lihat, ia tidak banyak berbeza.
Semua yang kita lakukan adalah menambah hujah 2, apungan yang dinamakan b,
senarai hujah menggunakan koma untuk memisahkan ia daripada hujah pertama, terapung.
Jadi, dataran dan fungsi jumlah cukup mudah untuk memahami
kerana mereka berada bersamaan dengan fungsi-fungsi yang anda telah dilihat sebelum ini di dalam kelas matematik.
Sekarang, mari kita melihat fungsi yang sedikit berbeza.
Sebaliknya kembali nilai, ia mengubah keadaan.
Ini dikenali sebagai mempunyai kesan sampingan.
Dalam program ini, fungsi printf_fudd_style
mempunyai jenis pulangan yang kita tidak pernah melihat sebelum ini, tidak sah.
>> Tidak sah digunakan untuk mengatakan bahawa fungsi tidak kembali apa-apa.
Terdapat tiada pembolehubah terbatal jenis,
jadi jika anda cuba untuk kembali sesuatu dari fungsi seperti printf_fudd_style,
pengkompil akan menjerit pada anda.
Inside printf_fudd_style, kita lihat bahawa manakala fungsi masih melakukan tugas,
iaitu menukar semua Rs Ws,
titik fungsi adalah untuk mengubah suai rentetan dan kemudian mencetak ia keluar pada skrin,
mengubah keadaan program dan bukannya kembali hasil.
Menggunakan fungsi ini sangat banyak seperti menggunakan persegi kami dan fungsi jumlah,
kecuali kita tidak menyimpan hasil dalam pembolehubah atau lulus ia dimatikan ke fungsi yang lain
kerana tidak ada hasil untuk bercakap tentang.
Jadi, apabila kita menyusun dan menjalankan program Elmer Fudd kami,
anda melihat bahawa "Anda terhina arnab!" mendapat berubah hak untuk
"Anda wascally wabbit!"
>> Akhirnya, ada 1 lagi fungsi bernilai membincangkan
kerana anda telah menggunakan ia dalam program C setiap anda pernah ditulis, utama.
Utama adalah fungsi sama seperti mana-mana orang lain.
Ia mendapat jenis balasan, nama, senarai hujah, dan badan.
Jenis pulangan utama adalah sentiasa int,
dan int ini digunakan untuk berkomunikasi status program apabila ia selesai.
>> Adakah ia berjalan dengan jayanya, atau adakah ia berakhir awal kerana kesilapan?
Kembali kepada sifar menunjukkan jangka yang berjaya,
dan kembali apa-apa nilai bukan sifar menunjukkan kesilapan.
Bergantung kepada jenis program yang anda menulis,
kembali kod berbeza untuk kesilapan yang berbeza boleh membantu
bagi orang-orang yang menggunakan program anda kemudian.
Sesalur hujah adalah sedikit lebih rumit.
>> Senarai hujah sama ada boleh menjadi kosong,
yang kita tandakan dengan bertulis tidak sah di antara kurungan,
atau senarai yang boleh mempunyai 2 hujah: int dan pelbagai char * s.
Ini adalah digunakan apabila program anda bercadang untuk menggunakan
hujah-hujah yang diluluskan di atas baris arahan apabila program ini dilaksanakan.
Hujah int biasanya dipanggil argc,
dan ia adalah sama panjang tatasusunan * char, yang dikenali sebagai argv.
Argv mengandungi hujah baris arahan yang diluluskan ke dalam program ini.
Dalam satu lagi pendek, kita akan bercakap tentang bagaimana untuk menggunakan pembolehubah ini dengan lebih terperinci.
Untuk sekarang, anda boleh berasa bebas untuk mengisytiharkan sama ada cara utama.
Saya biasanya memilih untuk menulis ia keluar cara yang lebih singkat, dengan tiada hujah, apabila mungkin.
>> Sekarang anda tahu bagaimana untuk menulis fungsi,
anda juga pada cara anda untuk membangunkan lebih besar, program yang lebih kompleks.
Nama saya adalah Nate Hardison. Ini adalah CS50.