1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> ZVUČNIK 1: Pa ja se osjećam kao da imaju tendenciju da napisati printf hello world ili printf 3 00:00:04,010 --> 00:00:08,160 Pozdrav posto je vrlo često u kontekstu gdje želim ispisati 4 00:00:08,160 --> 00:00:11,360 string, ponekad pita Korisnik dio tog niza. 5 00:00:11,360 --> 00:00:14,980 Pa, zar ne bi bilo lijepo da smo stvoreni funkcija sami nazivaju, 6 00:00:14,980 --> 00:00:19,900 kažu, naziv ispisa, čija je svrha u životu je jednostavno za ispis Pozdrav zarez 7 00:00:19,900 --> 00:00:24,560 toliko-i-toliko prihvaćajući tako-i-tako kao argument za tu funkciju? 8 00:00:24,560 --> 00:00:29,220 Mi možemo proglasiti funkciju našeg vlastitog baš kao što možemo u nule kako slijedi. 9 00:00:29,220 --> 00:00:35,280 >> Drugim riječima, da bih želio printf svoje ime i onda pitati korisnika 10 00:00:35,280 --> 00:00:39,470 za njegovo ili njeno ime s nizom s jednako GetString. 11 00:00:39,470 --> 00:00:42,060 A onda želim pozvati funkciju zove ime ispisnog 12 00:00:42,060 --> 00:00:44,340 položenog s kao inputa. 13 00:00:44,340 --> 00:00:47,770 >> Sada se, nažalost, nema funkciju zove ime ispisnog u C ili u 14 00:00:47,770 --> 00:00:48,950 CS50 knjižnica. 15 00:00:48,950 --> 00:00:51,220 No, bez obzira na to, jer smo možete to učiniti sami. 16 00:00:51,220 --> 00:00:54,560 Proglasiti funkciju vlastitih i zatim ga provesti, možemo jednostavno napraviti 17 00:00:54,560 --> 00:00:59,000 neki prostor u ovoj datoteci i proglasiti ova funkcija kao što slijedi, void - 18 00:00:59,000 --> 00:01:01,900 što znači da funkcija nije zapravo će se vratiti nešto, 19 00:01:01,900 --> 00:01:03,890 iako će imati Nuspojava - 20 00:01:03,890 --> 00:01:08,030 ispisati imena, a onda neka se navesti u zagradi je to ime print očekuje 21 00:01:08,030 --> 00:01:09,680 argument tipa string. 22 00:01:09,680 --> 00:01:12,180 I općenito, smislit ćemo to je kao ime. 23 00:01:12,180 --> 00:01:15,140 >> I neka je otvoriti naše braće i zatvoriti naše braće. 24 00:01:15,140 --> 00:01:21,930 I onda printf unutar pozdraviti zarez posto je novo ime linije zarez. 25 00:01:21,930 --> 00:01:24,570 Drugim riječima, iako je to Funkcija je samo jedna linija koda, što 26 00:01:24,570 --> 00:01:27,290 nema sada imaju neke veće Razina svrha tiska 27 00:01:27,290 --> 00:01:28,950 neko ime s pozdravom. 28 00:01:28,950 --> 00:01:33,115 >> Sada unutar glavna, primijetiti da sam nazivajući ime ispisa donošenjem s.. 29 00:01:33,115 --> 00:01:35,830 I tako mi se čini da su sada kompletan program. 30 00:01:35,830 --> 00:01:38,650 Jedina razlika je u tome od drugih što sam napisao je da ne samo da ne 31 00:01:38,650 --> 00:01:42,480 ovaj program su glavni, ona također ima deklaracija i provedba 32 00:01:42,480 --> 00:01:44,740 Naziv ispisa, funkcija moja. 33 00:01:44,740 --> 00:01:49,505 >> Idemo sada sastaviti svoj program napraviti Funkcija nula, i pokrenuti ga s točkom 34 00:01:49,505 --> 00:01:51,080 slash funkciju nula. 35 00:01:51,080 --> 00:01:53,390 Kada se zatraži moje ime Ja ću upisati Davida. 36 00:01:53,390 --> 00:01:55,830 I doista sam dočekan s "Hello, David." 37 00:01:55,830 --> 00:02:00,160 >> Sada ispada da sam vrlo promišljeno proglasio ime ispisnog iznad glavna, 38 00:02:00,160 --> 00:02:03,860 time reći C unaprijed da postoji postoji funkcija zove print 39 00:02:03,860 --> 00:02:06,930 ime, tako da bih mogao koristiti to kasnije u glavnom. 40 00:02:06,930 --> 00:02:11,610 Sad, da sam umjesto toga staviti naziv ispisa na Donji dio moje datoteke, kao što iskreno 41 00:02:11,610 --> 00:02:15,310 Vjerojatno bi trebalo učiniti da se glavne ostatke Prva stvar koju sam ili 42 00:02:15,310 --> 00:02:18,450 drugi korisnik vidi u mom kodu, ispada da je moj broj je 43 00:02:18,450 --> 00:02:19,780 neće sastaviti. 44 00:02:19,780 --> 00:02:23,610 >> Naime, ako se vratim na moj Terminal prozor i trčanje bi funkciju 45 00:02:23,610 --> 00:02:26,120 nula, shvaćaš da sam vikao na. 46 00:02:26,120 --> 00:02:30,340 Ako sam dođite u moj prozor terminala, Vidjet ću ovu prvu pogrešku u crveno, 47 00:02:30,340 --> 00:02:33,120 implicitna izjava o Funkcija Naziv ispisa. 48 00:02:33,120 --> 00:02:34,220 >> Sad, što to znači? 49 00:02:34,220 --> 00:02:37,190 Pa, iako sam provodi ispisati ime u ovoj datoteci, nisam 50 00:02:37,190 --> 00:02:40,080 provodi ga prije sam ga koristiti u glavni. 51 00:02:40,080 --> 00:02:43,160 Sada, možemo se vratiti na staro verziju i staviti ime print-a 52 00:02:43,160 --> 00:02:44,450 Provedba do vrha. 53 00:02:44,450 --> 00:02:48,730 >> Ali sam umjesto toga može samo dati savjet C da postoji funkcija koje dolaze. 54 00:02:48,730 --> 00:02:55,390 Naime, iznad glavne mogu izjaviti ispisati imena kao što sam činio i ranije, ali 55 00:02:55,390 --> 00:02:59,450 završiti liniju sa zarezom, a time obećavši da će provesti, ali još uvijek nije 56 00:02:59,450 --> 00:03:02,180 zapravo provedbu funkciju nadjene ime print. 57 00:03:02,180 --> 00:03:05,860 I onda može imati glavni na vrhu moje podnijeti kao što sam se nadao, a ja mogu zapravo 58 00:03:05,860 --> 00:03:07,440 provedbu ime ispis na dnu. 59 00:03:07,440 --> 00:03:12,860 >> Ako ja sada vratiti na moj prozor terminala i kompilirati funkciju nula s make, 60 00:03:12,860 --> 00:03:14,390 ovaj put to sastavlja. 61 00:03:14,390 --> 00:03:18,240 A ako sam ga pokrenuti s dot funkciji slash nula pružanju moje ime, ja sam 62 00:03:18,240 --> 00:03:20,650 dočekan kao "Zdravo, David." 63 00:03:20,650 --> 00:03:22,268