1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> Spreker 1: Ek voel soos ek geneig is om te skryf printf Hello World of printf 3 00:00:04,010 --> 00:00:08,160 hallo persent s dikwels in konteks waar ek wil uit te druk van 'n 4 00:00:08,160 --> 00:00:11,360 string, soms vra die gebruikers deel van die string. 5 00:00:11,360 --> 00:00:14,980 Wel, sou dit nie lekker wees as ons ' 'n funksie van ons eie genoem, 6 00:00:14,980 --> 00:00:19,900 sê, druk naam, wie se doel in die lewe is eenvoudig te druk hallo komma 7 00:00:19,900 --> 00:00:24,560 so-en-so deur die aanvaarding van die so-en-so as 'n argument op daardie funksie? 8 00:00:24,560 --> 00:00:29,220 Ons kan 'n funksie van ons eie verklaar Net soos ons in Scratch soos volg. 9 00:00:29,220 --> 00:00:35,280 >> Met ander woorde, dink ek wil printf jou naam en dan vra die gebruiker 10 00:00:35,280 --> 00:00:39,470 vir sy of haar naam met 'n tou s gelyk GetString. 11 00:00:39,470 --> 00:00:42,060 En dan wil ek 'n funksie te roep genoem Print Naam 12 00:00:42,060 --> 00:00:44,340 verby 'n s aangesien sy insette. 13 00:00:44,340 --> 00:00:47,770 >> Nou ongelukkig, is daar geen funksie genoem Print Naam in C of 14 00:00:47,770 --> 00:00:48,950 die cs50 biblioteek. 15 00:00:48,950 --> 00:00:51,220 Maar maak nie saak nie, want ons kan maak dit self. 16 00:00:51,220 --> 00:00:54,560 'N funksie van ons eie te verklaar en dan is dit implementeer, kan ons net maak 17 00:00:54,560 --> 00:00:59,000 ruimte in hierdie lêer en verklaar hierdie funksie soos volg, nietig - 18 00:00:59,000 --> 00:01:01,900 wat beteken dat die funksie is nie eintlik gaan om iets terug te keer, 19 00:01:01,900 --> 00:01:03,890 selfs al is dit sal 'n newe-effek - 20 00:01:03,890 --> 00:01:08,030 druk die naam, en dan laat ons spesifiseer in hakies dat Print Naam verwag 'n 21 00:01:08,030 --> 00:01:09,680 argument van die tipe string. 22 00:01:09,680 --> 00:01:12,180 En in die algemeen, sal ons dink van daardie as 'n naam. 23 00:01:12,180 --> 00:01:15,140 >> En laat ons ons oop stut en sluit ons stut. 24 00:01:15,140 --> 00:01:21,930 En dan printf binne hallo komma persent se nuwe lyn komma naam. 25 00:01:21,930 --> 00:01:24,570 Met ander woorde, selfs al is dit funksie is net een lyn van kode, is dit 26 00:01:24,570 --> 00:01:27,290 het nou 'n paar hoër het vlak doel te druk 27 00:01:27,290 --> 00:01:28,950 iemand se naam met 'n groet. 28 00:01:28,950 --> 00:01:33,115 >> Nou binnekant van die belangrikste, kennis dat ek roep Print Naam deur 'n s. 29 00:01:33,115 --> 00:01:35,830 En so het ek nou lyk te hê 'n volledige program. 30 00:01:35,830 --> 00:01:38,650 Die enigste verskil is van ander ons geskryf is, is dat nie net 31 00:01:38,650 --> 00:01:42,480 Hierdie program hoof, het dit ook 'n verklaring en implementering van 32 00:01:42,480 --> 00:01:44,740 Druk naam, 'n funksie van my eie. 33 00:01:44,740 --> 00:01:49,505 >> Kom ons kyk nou my program saam te stel met die make funksie nul is, en voer dit met dot 34 00:01:49,505 --> 00:01:51,080 streep funksie nul. 35 00:01:51,080 --> 00:01:53,390 As jy gevra word vir my naam Ek sal tik in Dawid. 36 00:01:53,390 --> 00:01:55,830 En ek inderdaad is begroet met 'n "Hallo, David." 37 00:01:55,830 --> 00:02:00,160 >> Nou, dit blyk ek baie doelbewus verklaar Print Naam bogenoemde hoof, 38 00:02:00,160 --> 00:02:03,860 daardeur vertel C vooruit dat daar bestaan ​​'n funksie genoem Print 39 00:02:03,860 --> 00:02:06,930 noem sodat ek kan gebruik Dit het later in die belangrikste. 40 00:02:06,930 --> 00:02:11,610 Nou, ek het in plaas sit Print Naam op die onderkant van my lêer, as eerlik ek 41 00:02:11,610 --> 00:02:15,310 waarskynlik moet doen sodat belangrikste oorblyfsels Die eerste ding wat ek of 42 00:02:15,310 --> 00:02:18,450 'n ander gebruiker sien in my kode, dit blyk dat my kode is 43 00:02:18,450 --> 00:02:19,780 gaan nie te stel. 44 00:02:19,780 --> 00:02:23,610 >> Spesifiek, as ek gaan terug na my terminale venster en hardloop maak funksie 45 00:02:23,610 --> 00:02:26,120 zero nou, kennis dat ek geskree. 46 00:02:26,120 --> 00:02:30,340 As ek blaai in my terminale venster, Ek sal die eerste fout sien in rooi, 47 00:02:30,340 --> 00:02:33,120 implisiete verklaring van funksie Print Naam. 48 00:02:33,120 --> 00:02:34,220 >> Nou, wat beteken dit? 49 00:02:34,220 --> 00:02:37,190 Wel, selfs al het ek nog geïmplementeer Print Naam in hierdie lêer, ek het nie 50 00:02:37,190 --> 00:02:40,080 geïmplementeer voordat ek het gebruik dit in die belangrikste. 51 00:02:40,080 --> 00:02:43,160 Nou kan ons gaan terug na die ou weergawe en sit druk naam se 52 00:02:43,160 --> 00:02:44,450 implementering tot bo-op. 53 00:02:44,450 --> 00:02:48,730 >> Maar ek kan plaas net gee C 'n wenk dat daar 'n funksie te kom. 54 00:02:48,730 --> 00:02:55,390 Spesifiek, bo vernaamste Ek kan verklaar Print Naam net soos ek gedoen het vroeër, maar 55 00:02:55,390 --> 00:02:59,450 die einde van die lyn met 'n kommapunt, en daardeur belowe om te implementeer, maar nog nie 56 00:02:59,450 --> 00:03:02,180 eintlik die uitvoering van die funksie genoem Print Naam. 57 00:03:02,180 --> 00:03:05,860 Ek kan dan hoof aan die bokant van my dien as wat ek gehoop het, en ek kan eintlik 58 00:03:05,860 --> 00:03:07,440 implementeer Print Naam aan die onderkant. 59 00:03:07,440 --> 00:03:12,860 >> As ek nou terug te keer na my terminale venster en heropstel funksie nul met make, 60 00:03:12,860 --> 00:03:14,390 hierdie keer is dit stel. 61 00:03:14,390 --> 00:03:18,240 En as ek loop dit met dot streep funksie nul verskaffing van my naam, ek is 62 00:03:18,240 --> 00:03:20,650 begroet as "Hallo, David." 63 00:03:20,650 --> 00:03:22,268