SPEAKER 1: Jadi aku merasa seperti saya cenderung untuk menulis printf hello world atau printf halo persen s cukup sering dalam konteks di mana saya ingin mencetak String, kadang-kadang meminta pengguna bagian dari string tersebut. Nah, bukankah akan lebih baik jika kita buat fungsi dari kami sendiri disebut, mengatakan, nama cetak, yang tujuannya dalam hidup hanya untuk mencetak halo koma begitu-dan-jadi dengan menerima begitu-dan-jadi sebagai argumen untuk fungsi itu? Kita dapat mendeklarasikan fungsi kita sendiri sama seperti kita dapat di Scratch sebagai berikut. Dengan kata lain, misalkan saya ingin printf nama Anda dan kemudian meminta pengguna nama nya dengan tali s sama GetString. Dan kemudian saya ingin memanggil fungsi disebut nama cetak melewatkan sebagai input. Sekarang sayangnya, tidak ada fungsi disebut nama cetak di C atau di perpustakaan CS50. Tapi tak masalah, karena kita bisa membuatnya sendiri. Untuk menyatakan fungsi kita sendiri dan kemudian menerapkannya, kita hanya dapat membuat beberapa ruang di file ini dan menyatakan fungsi ini sebagai berikut, kekosongan - menandakan bahwa fungsi tidak benar-benar akan mengembalikan sesuatu, meskipun akan memiliki efek samping - nama cetak, dan kemudian mari kita tentukan di kurung nama cetak mengharapkan argumen tipe string. Dan secara umum, kita akan berpikir itu sebagai nama. Dan mari kita buka brace kami dan menutup brace kami. Dan kemudian printf dalam halo koma Nama jalur koma baru persen s. Dengan kata lain, meskipun ini fungsi hanya satu baris kode, itu tidak sekarang memiliki beberapa tinggi Tujuan tingkat untuk mencetak nama seseorang dengan ucapan. Sekarang dalam utama, perhatikan bahwa aku memanggil nama cetak dengan melewatkan s. Dan jadi saya tampaknya sekarang memiliki sebuah program yang lengkap. Satu-satunya perbedaan adalah dari orang lain kami telah menulis adalah bahwa tidak hanya Program ini telah utama, juga memiliki deklarasi dan implementasi Nama cetak, fungsi dari saya sendiri. Sekarang mari kita mengkompilasi program saya dengan make fungsi nol, dan menjalankannya dengan dot slash fungsi nol. Ketika diminta untuk nama saya Aku akan ketik David. Dan saya memang saya disambut dengan "Halo, David." Sekarang, ternyata aku sangat sengaja Nama cetak yang dinyatakan di atas utama, dengan demikian memberitahu C di muka bahwa ada ada fungsi yang disebut print nama sehingga saya bisa menggunakan nanti di utama. Sekarang, telah saya bukan menempatkan nama cetak pada bagian bawah file saya, terus terang saya mungkin harus melakukan agar tetap utama hal pertama yang saya atau pengguna lain melihat dalam kode saya, ternyata kode saya adalah tidak akan dikompilasi. Secara khusus, jika saya kembali ke saya window terminal dan menjalankan membuat fungsi nol sekarang, perhatikan bahwa aku berteriak. Jika saya gulir ke atas dalam jendela terminal saya, Aku akan melihat kesalahan pertama ini merah, deklarasi implisit nama fungsi cetak. Sekarang, apa artinya? Yah, meskipun saya telah menerapkan mencetak nama dalam file ini, saya tidak punya dilaksanakan sebelum aku sudah menggunakannya dalam utama. Sekarang, kita bisa kembali ke yang lama versi dan nama cetak menempatkan ini implementasi atas. Tapi aku malah bisa hanya memberikan C petunjuk bahwa ada fungsi yang akan datang. Secara khusus, di atas utama saya dapat menyatakan mencetak nama hanya seperti yang saya lakukan sebelumnya, tetapi mengakhiri baris dengan titik koma, sehingga menjanjikan untuk menerapkan tetapi belum benar-benar menerapkan fungsi disebut nama cetak. Saya kemudian dapat memiliki utama di bagian atas saya mengajukan seperti aku berharap, dan aku benar-benar bisa mengimplementasikan cetak nama di bagian bawah. Jika saya sekarang kembali ke jendela terminal saya dan mengkompilasi ulang fungsi nol dengan make, kali ini mengkompilasi. Dan jika saya menjalankannya dengan fungsi slash dot zero memberikan nama saya, saya disambut sebagai "Halo, David."