>> SPEAKER 1: Jadi saya rasa seperti saya cenderung untuk menulis printf hello dunia atau printf
hello peratus Seringkali dalam konteks di mana saya ingin mencetak
tali, kadang-kadang meminta sebahagian pengguna tali itu.
Nah, tidak akan ia lebih baik jika kita dicipta fungsi kita sendiri dipanggil,
mengatakan, nama cetak, yang tujuan dalam hidup adalah semata-mata untuk mencetak hello koma
jadi-dan-jadi dengan menerima polan jadi sebagai hujah dengan fungsi itu?
Kita boleh mengisytiharkan fungsi kita sendiri seperti yang kita boleh dalam Scratch seperti berikut.
>> Dalam erti kata lain, andaikan saya ingin printf nama anda dan kemudian meminta pengguna
nama beliau dengan tali s sama GetString.
Dan kemudian saya mahu panggil fungsi dipanggil nama cetak
lulus s sebagaimana input.
>> Sekarang malangnya, tidak ada fungsi dipanggil nama cetak dalam C atau dalam
perpustakaan cs50.
Tetapi tidak kira, kerana kita boleh membuat ia diri kita sendiri.
Untuk mengisytiharkan fungsi kita sendiri dan kemudian melaksanakannya, kita hanya boleh membuat
beberapa bilik dalam fail ini dan mengisytiharkan fungsi ini seperti berikut, tidak sah -
menandakan bahawa fungsi bukan sebenarnya akan kembali sesuatu,
walaupun ia akan mempunyai kesan sampingan -
mencetak nama, dan kemudian mari kita menentukan dalam kurungan bahawa nama cetak menjangkakan
hujah jenis tali.
Dan secara amnya, kita akan berfikir itu sebagai nama.
>> Dan mari kita membuka pendakap kami dan menutup pendakap kami.
Dan kemudian di dalam printf hello koma baru nama talian koma peratus s.
Dalam erti kata lain, walaupun ini fungsi hanya satu baris kod, ia
adakah kini mempunyai beberapa yang lebih tinggi tujuan tahap untuk mencetak
nama seseorang dengan sesuatu ucapan.
>> Sekarang dalam utama, notis bahawa saya memanggil nama cetak dengan melepaskan satu s.
Dan saya seolah-olah kini mempunyai satu program yang lengkap.
Satu-satunya perbezaan menjadi daripada orang lain kami telah menulis bahawa bukan sahaja
program ini telah utama, ia juga mempunyai pengisytiharan dan pelaksanaan
Nama cetak, fungsi saya sendiri.
>> Sekarang mari kita menyusun program saya dengan solekan fungsi sifar, dan menjalankannya dengan titik
mengurangkan fungsi sifar.
Apabila digesa untuk nama saya Saya akan taip Daud.
Dan sesungguhnya aku sedang disambut dengan "Hello, Daud."
>> Sekarang, ternyata saya sangat sengaja diisytiharkan nama cetak di atas utama,
dengan itu memberitahu C terlebih dahulu bahawa terdapat wujud fungsi yang dipanggil cetak
menamakan supaya saya boleh menggunakan kemudian dalam utama.
Sekarang, saya telah meletakkan nama dan bukan cetak pada bahagian bawah fail saya, kerana terus terang saya
mungkin perlu lakukan supaya mayat utama perkara pertama yang saya atau
pengguna lain melihat dalam kod saya, ternyata bahawa kod saya
tidak akan mengumpulkannya.
>> Khususnya, jika saya kembali ke saya tetingkap terminal dan menjalankan membuat fungsi
sifar sekarang, notis bahawa saya menjerit.
Jika saya tatal ke atas dalam tetingkap terminal saya, Saya akan melihat kesilapan pertama ini dalam warna merah,
pengakuan tersirat fungsi nama cetak.
>> Kini, apa maksudnya?
Well, walaupun saya telah dilaksanakan mencetak nama dalam fail ini, saya tidak telah
dilaksanakan sebelum saya telah digunakan dalam utama.
Sekarang, kita boleh kembali kepada yang lama versi dan meletakkan nama cetak ini
pelaksanaan sehingga atas.
>> Tetapi saya boleh dan bukannya hanya memberi C petunjuk bahawa terdapat fungsi yang akan datang.
Khususnya, di atas utama saya boleh mengisytiharkan mencetak nama sahaja seperti yang saya lakukan sebelum ini, tetapi
menamatkan garisan dengan koma bernoktah, dan dengan itu berjanji untuk melaksanakan tetapi belum
sebenarnya melaksanakan fungsi dipanggil nama cetak.
Saya boleh mempunyai utama di bahagian atas saya memfailkan kerana saya berharap, dan saya boleh sebenarnya
melaksanakan nama cetak di bahagian bawah.
>> Jika saya kini kembali ke tetingkap terminal saya dan susun semula fungsi sifar dengan solekan,
kali ini ia menyusun.
Dan jika saya menjalankannya dengan fungsi slash dot sifar memberikan nama saya, saya
disambut sebagai "Hello, Daud."