[Powered by Google Translate] CHRIS Gerber: Sebuah fungsi adalah serangkaian langkah dalam
Program yang lebih besar, yang biasanya dimaksudkan untuk dipanggil
beberapa kali dan dari lokasi lain beberapa
program.
Ketika membuat fungsi C, salah satu persyaratan adalah untuk
menentukan jenis nilai kembali.
Kasus paling sederhana adalah situasi dimana memanggil
kode tidak peduli dengan hasil dari fungsi.
Hal ini mungkin terjadi ketika kita mencetak data ke
pengguna layar, seperti printf.
Dalam kasus ini, kita dapat mendeklarasikan nilai kembali
menjadi tipe void.
Menggunakan void hanya memberitahu compiler bahwa tidak ada
nilai akan dikembalikan.
Mari kita lihat apa ini tampak seperti.
>> Mari kita mengatakan bahwa kita memiliki fungsi yang disebut say_hello yang
mengambil satu argumen.
Kita akan menyebarkannya nama seseorang dan itu akan menampilkan ucapan
di layar.
Nama akan menjadi char * tipe.
Dan kita akan menetapkan bahwa sebagai argumen.
Aplikasi saya tidak perlu tahu apa yang dicetak atau jika
dicetak.
Jadi nilai balik akan menjadi tipe void.
Fungsi ini dapat mencetak ke layar dengan perintah seperti
printf ("Hello,% s \ n
", Nama);.
Salam akan ditampilkan dan kontrol akan diteruskan
kembali ke kode panggilan.
Satu hal yang perlu diperhatikan adalah bahwa ketika jenis nilai kembali adalah tidak sah,
Anda tidak perlu memasukkan kembali sebuah
pernyataan dalam fungsi.
Jika Anda memilih untuk menyertakan satu, tidak termasuk nilai kembali
sebagai argumen.
>> Dalam beberapa kasus, masuk akal untuk mengembalikan
nilai dari fungsi.
Mari kita mengatakan bahwa kita sedang menulis sebuah fungsi yang disebut add_floats.
Kami akan lulus dua argumen, baik mengapung,
disebut pertama dan kedua.
Dan itu akan memberitahu kita apa jumlah tersebut mengapung adalah.
Kita tahu bahwa jika kita menambahkan dua mengapung bersama-sama, hasilnya
akan menjadi pelampung.
Mengingat bahwa, kita memilih jenis kembalinya mengambang.
Fungsi ini akan melakukan perhitungan ini dan kembali
nilai-nilai dalam sebuah pernyataan seperti return
pertama + kedua;.
Ketika kontrol akan diteruskan kembali ke kode panggilan,
menghasilkan nilai sekarang tersedia untuk kode itu.
Kita dapat menyimpan nilai ini seperti: hasil mengapung =
add_floats (3,14, 1,62
);.
Hasil dalam hal ini sekarang akan berisi nilai 4.76.
>> Sebagai pengingat, nilai floating point yang tepat.
Jadi jika ini adalah perhitungan keuangan, menggunakan dolar dan
sen, kita mungkin ingin mempertimbangkan tipe data yang tepat seperti
int dan melakukan perhitungan dalam sen.
>> Kasus lain di mana kita ingin mengembalikan nilai dari
Fungsi adalah ketika kita ingin tahu apakah fungsi ini
sukses.
Jika itu tidak berhasil, kita juga mungkin ingin tahu apa jenis
kesalahan terjadi.
Mari kita mengatakan bahwa kita mencoba untuk membuka file pada disk untuk menghitung
jumlah karakter di dalamnya.
Jika file tersebut tidak dapat dibuka, kami ingin bisa berhenti dan
memberitahu pengguna tentang masalah.
>> Kami akan menelepon count_file_chars fungsi kita dan akan
mengambil satu argumen.
Kami akan lulus dalam nama file menggunakan
char * filename disebut.
Fungsi ini mungkin terlihat seperti ini.
Dalam contoh ini, kita akan mengharapkan menghitung kembali ke
menjadi 0 atau lebih.
Hal ini membuat kita bilangan bulat negatif
digunakan sebagai nilai sentinel.
Sebuah nilai sentinel hanyalah sebuah nilai khusus yang tidak
Data yang sah tetapi tidak menyampaikan informasi.
Di sini, jika saya kembali ke -1 kode panggilan, saya
sebenarnya mengirimkan pesan bahwa kesalahan terjadi saat
mencoba untuk mengakses file tersebut.
Saya kemudian bisa memeriksa bahwa nilai kembali untuk menentukan apakah saya
fungsi panggilan berhasil.
Jika nomor itu 0 atau lebih besar, saya akan tahu
jumlah karakter dalam file.
Namun, jika jumlah itu kurang dari 0, saya hanya bisa
cetak bahwa masalah telah terjadi.
Satu trade-off yang perlu dipertimbangkan adalah bahwa dengan pemesanan semua
nilai negatif sebagai nilai sentinel, dengan asumsi bahwa ini adalah
32-bit integer, saya pada dasarnya diambil sekitar
2 miliar kembali nilai-nilai yang mungkin.
>> Kembali jenis nilai adalah salah satu elemen yang paling penting dari
fungsi panggilan.
Mudah-mudahan ini gambaran singkat telah membantu Anda berpikir tentang
tiga tombol tipe: void, nilai hasil, dan nilai-nilai sentinel,
dan ketika masing-masing tiga mungkin
tepat dalam kode Anda.
Terima kasih untuk menonton.