1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> SPEAKER 1: Tāpēc es jūtu, ka man ir tendence rakstīt printf hello world vai printf 3 00:00:04,010 --> 00:00:08,160 sveiki procenti s diezgan bieži kontekstos kur es vēlos, lai izdrukātu 4 00:00:08,160 --> 00:00:11,360 string, dažreiz lūdzot lietotājs daļa no šīs virknes. 5 00:00:11,360 --> 00:00:14,980 Nu, tas nebūtu jauki, ja mēs izveidojām funkcija mūsu pašu sauc, 6 00:00:14,980 --> 00:00:19,900 saka, atšifrējums, kura mērķis dzīvē ir vienkārši izdrukāt sveiki komats 7 00:00:19,900 --> 00:00:24,560 tik-un-tā, pieņemot tāds un tā kā arguments, lai šo funkciju? 8 00:00:24,560 --> 00:00:29,220 Mēs varam atzīt funkciju mūsu pašu tāpat kā mēs varam nulles šādi. 9 00:00:29,220 --> 00:00:35,280 >> Citiem vārdiem sakot, domāju, ka es gribētu printf savu vārdu un pēc tam pieprasīt no lietotāja 10 00:00:35,280 --> 00:00:39,470 par viņa vai viņas vārdu ar auklu s vienāds GetString. 11 00:00:39,470 --> 00:00:42,060 Un tad es gribu, lai izsauktu funkciju sauc atšifrējums 12 00:00:42,060 --> 00:00:44,340 izejot s kā tās ieguldījumu. 13 00:00:44,340 --> 00:00:47,770 >> Tagad diemžēl nav funkcija sauc atšifrējums C vai 14 00:00:47,770 --> 00:00:48,950 CS50 bibliotēka. 15 00:00:48,950 --> 00:00:51,220 Bet vienalga, jo mēs var padarīt to paši. 16 00:00:51,220 --> 00:00:54,560 Atzīt funkciju mūsu pašu un tad to īstenot, mēs varam vienkārši izdarīt 17 00:00:54,560 --> 00:00:59,000 dažas vietas šajā lietā un paziņo, šī funkcija šādi, spēkā neesošu - 18 00:00:59,000 --> 00:01:01,900 kas norāda, ka funkcija nav faktiski gatavojas atgriezties kaut ko, 19 00:01:01,900 --> 00:01:03,890 pat ja tas būs blakusparādība - 20 00:01:03,890 --> 00:01:08,030 drukāt vārdu, un tad pieņemsim precizēt iekavās ka atšifrējums sagaida 21 00:01:08,030 --> 00:01:09,680 arguments tipa virkni. 22 00:01:09,680 --> 00:01:12,180 Un vispār, mēs domāju, ka no tā kā nosaukumu. 23 00:01:12,180 --> 00:01:15,140 >> Un pieņemsim, atvērt mūsu lencēm un slēgt mūsu lencēm. 24 00:01:15,140 --> 00:01:21,930 Un tad printf iekšā sveiki komats procenti s Jaunā līnija komatu nosaukums. 25 00:01:21,930 --> 00:01:24,570 Citiem vārdiem, kaut gan šī funkcija ir tikai viena līnija kodu, tas 26 00:01:24,570 --> 00:01:27,290 tas tagad ir kāds augstāks līmeņa mērķis drukāt 27 00:01:27,290 --> 00:01:28,950 kāds vārds ar sveicienu. 28 00:01:28,950 --> 00:01:33,115 >> Tagad iekšpusē galvenais, ievērosiet, ka es esmu zvanot atšifrējums, izejot s. 29 00:01:33,115 --> 00:01:35,830 Un tāpēc man šķiet, tagad ir pilnīga programma. 30 00:01:35,830 --> 00:01:38,650 Vienīgā atšķirība ir no citiem Mēs esam rakstiski ir tas, ka ne tikai tas, 31 00:01:38,650 --> 00:01:42,480 šī programma ir galvenais, tas arī ir deklarāciju un īstenošana 32 00:01:42,480 --> 00:01:44,740 atšifrējums, funkcija mana. 33 00:01:44,740 --> 00:01:49,505 >> Pieņemsim tagad sastādīt savu programmu ar marka funkcija nulle, un palaist to ar punktu 34 00:01:49,505 --> 00:01:51,080 slash funkciju nulles. 35 00:01:51,080 --> 00:01:53,390 Kad tiek piedāvāts par manu vārdu Es tipa Dāvidu. 36 00:01:53,390 --> 00:01:55,830 Un es tiešām esmu sveicināja ar "Hello, David." 37 00:01:55,830 --> 00:02:00,160 >> Tagad, izrādās, es ļoti apzināti pasludināja atšifrējums iepriekš galvenais, 38 00:02:00,160 --> 00:02:03,860 tādējādi stāsta C iepriekš, ka pastāv funkciju sauc print 39 00:02:03,860 --> 00:02:06,930 nosaukt tā, ka es varētu izmantot tas vēlāk galvenais. 40 00:02:06,930 --> 00:02:11,610 Tagad, tad es tā vietā likt atšifrējums pie apakšā manu failu, jo atklāti sakot, es 41 00:02:11,610 --> 00:02:15,310 iespējams, tas būtu jādara, ka galvenie atliekas Pirmā lieta, ko es vai 42 00:02:15,310 --> 00:02:18,450 cits lietotājs redz manu kodu, izrādās, ka mans kods ir 43 00:02:18,450 --> 00:02:19,780 nav gatavojas sastādīt. 44 00:02:19,780 --> 00:02:23,610 >> Īpaši, ja es dodos atpakaļ uz manu termināla logu un palaist veikt funkcijas 45 00:02:23,610 --> 00:02:26,120 nulle tagad ievēroju, ka es esmu kliedza uz. 46 00:02:26,120 --> 00:02:30,340 Ja es ritinātu manā termināļa logā, Es redzēt šo pirmo kļūdu sarkanā krāsā, 47 00:02:30,340 --> 00:02:33,120 netieši deklarācija funkciju atšifrējums. 48 00:02:33,120 --> 00:02:34,220 >> Tagad, ko tas nozīmē? 49 00:02:34,220 --> 00:02:37,190 Nu, kaut arī es esmu īstenojusi print vārdu šajā failā, es esmu ne 50 00:02:37,190 --> 00:02:40,080 īstenoja to pirms es esmu to izmanto galvenokārt. 51 00:02:40,080 --> 00:02:43,160 Tagad mēs varētu iet atpakaļ uz veco versija un nodot atšifrējums ir 52 00:02:43,160 --> 00:02:44,450 īstenošana up top. 53 00:02:44,450 --> 00:02:48,730 >> Bet es varu, nevis tikai dot C mājienu ka tur ir funkcija nākt. 54 00:02:48,730 --> 00:02:55,390 Konkrētāk, iepriekš galvenais varu paziņot, print vārdu tāpat kā es darīju agrāk, bet 55 00:02:55,390 --> 00:02:59,450 pārtrauktu līniju ar semikolu, tādējādi solot īstenot, bet vēl nav 56 00:02:59,450 --> 00:03:02,180 faktiski īstenojot funkciju sauc atšifrējums. 57 00:03:02,180 --> 00:03:05,860 Tad es varētu būt galvenais augšpusē manu failu, kā es cerēju, un es faktiski var 58 00:03:05,860 --> 00:03:07,440 īstenot atšifrējums apakšā. 59 00:03:07,440 --> 00:03:12,860 >> Ja es tagad atgriežas pie sava termināļa loga un recompile funkciju nulles ar marku, 60 00:03:12,860 --> 00:03:14,390 šoreiz tas apkopo. 61 00:03:14,390 --> 00:03:18,240 Un, ja man palaist to ar dot slash funkciju nulle nodrošinot manu vārdu, es esmu 62 00:03:18,240 --> 00:03:20,650 apsveica kā "Sveiki, David." 63 00:03:20,650 --> 00:03:22,268