1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> SPEAKER 1: Tak mám pocit, že majú tendenciu napísať printf hello world alebo printf 3 00:00:04,010 --> 00:00:08,160 ahoj percent je pomerne často v súvislostiach kde chcem vytlačiť 4 00:00:08,160 --> 00:00:11,360 reťazec, niekedy žiadať Užívateľská časť tohto reťazca. 5 00:00:11,360 --> 00:00:14,980 No, nebolo by to bolo pekné, keby sme vytvorili Funkcie naše volal, 6 00:00:14,980 --> 00:00:19,900 povedať, názov tlačového, ktorého zmysel života je jednoducho vytlačiť ahoj čiarka 7 00:00:19,900 --> 00:00:24,560 tak-a-tak prijatím tak-a-tak ako argument pre túto funkciu? 8 00:00:24,560 --> 00:00:29,220 Môžeme deklarovať funkciu vlastné rovnako ako môžeme v Scratch takto. 9 00:00:29,220 --> 00:00:35,280 >> Inými slovami, že by som chcel printf svoje meno a potom požiadať užívateľa 10 00:00:35,280 --> 00:00:39,470 pre jeho alebo jej meno s reťazcom s sa rovná GetString. 11 00:00:39,470 --> 00:00:42,060 A potom chcem, aby volanie funkcie volal názov tlačového 12 00:00:42,060 --> 00:00:44,340 zložením s ako jeho vstup. 13 00:00:44,340 --> 00:00:47,770 >> Teraz bohužiaľ, nie je funkcia volal názov tlačového v C alebo v 14 00:00:47,770 --> 00:00:48,950 CS50 knižnice. 15 00:00:48,950 --> 00:00:51,220 Ale bez ohľadu na to, pretože sme môže robiť to sami. 16 00:00:51,220 --> 00:00:54,560 Ak chcete deklarovať funkciu vlastné a potom ju realizovať, môžeme jednoducho urobiť 17 00:00:54,560 --> 00:00:59,000 niektoré izby v tomto súbore a vyhlásiť táto funkcia takto, void - 18 00:00:59,000 --> 00:01:01,900 znamenať, že funkcia nie je vlastne bude vracať niečo, 19 00:01:01,900 --> 00:01:03,890 aj keď to bude mať vedľajší efekt - 20 00:01:03,890 --> 00:01:08,030 tlačiť názov, a potom sa poďme špecifikovať zátvorky, že názov tlačového očakáva, 21 00:01:08,030 --> 00:01:09,680 argument typu string. 22 00:01:09,680 --> 00:01:12,180 A všeobecne, tak si myslíme, že z toho ako predtým. 23 00:01:12,180 --> 00:01:15,140 >> A poďme otvoriť naše ortézy a zatvorte našu ortézu. 24 00:01:15,140 --> 00:01:21,930 A potom printf vnútri ahoj čiarka percent je nový názov linky čiarkou. 25 00:01:21,930 --> 00:01:24,570 Inými slovami, aj keď to funkcia je len jeden riadok kódu, je 26 00:01:24,570 --> 00:01:27,290 čo teraz majú niektoré vyššie účel tlače úrovne 27 00:01:27,290 --> 00:01:28,950 niečí meno s pozdravom. 28 00:01:28,950 --> 00:01:33,115 >> Teraz vo vnútri hlavnej, všimnite si, že som volá názov tlačového zložením s 29 00:01:33,115 --> 00:01:35,830 A tak sa mi zdá, teraz majú kompletný program. 30 00:01:35,830 --> 00:01:38,650 Jediným rozdielom je od ostatných písali sme, že nielenže 31 00:01:38,650 --> 00:01:42,480 Tento program sa hlavné, to tiež má vyhlásenie a realizácia 32 00:01:42,480 --> 00:01:44,740 Meno tlač, funkcie z mojej vlastnej. 33 00:01:44,740 --> 00:01:49,505 >> Poďme sa teraz zostaviť svoj program s make funkcie nulová, a spustite ho s bodkou 34 00:01:49,505 --> 00:01:51,080 lomítko funkcii nulový. 35 00:01:51,080 --> 00:01:53,390 Po výzve pre moje meno Budem písať David. 36 00:01:53,390 --> 00:01:55,830 A ja naozaj som pozdravil s "Ahoj, David." 37 00:01:55,830 --> 00:02:00,160 >> Teraz sa ukazuje, že som veľmi uvážene vyhlásil tlačový meno nad hlavnou, 38 00:02:00,160 --> 00:02:03,860 čím sa hovorí, C vo vopred, že tam existuje funkcia nazvaná tlače 39 00:02:03,860 --> 00:02:06,930 pomenovať tak, že by som mohol použiť to neskôr v hlavnej. 40 00:02:06,930 --> 00:02:11,610 Teraz, keby som namiesto toho dal názov tlačového na Spodná časť môjho súboru, ako úprimne som 41 00:02:11,610 --> 00:02:15,310 Asi by sa to tak, že hlavný ostatky Prvá vec, ktorú som, alebo 42 00:02:15,310 --> 00:02:18,450 iný používateľ vidí v mojom kóde, Ukazuje sa, že môj kód je 43 00:02:18,450 --> 00:02:19,780 nebude kompilovať. 44 00:02:19,780 --> 00:02:23,610 >> Konkrétne, ak sa vrátim k môjmu okno terminálu a spustiť, aby funkcia 45 00:02:23,610 --> 00:02:26,120 nula teraz si všimnite, že som kričal. 46 00:02:26,120 --> 00:02:30,340 Keby som prejdite do okna môjho terminálu, Uvidíme sa tento prvý chyba v červenej farbe, 47 00:02:30,340 --> 00:02:33,120 implicitné vyhlásenie názov funkcie tlače. 48 00:02:33,120 --> 00:02:34,220 >> A teraz, čo to znamená? 49 00:02:34,220 --> 00:02:37,190 No, aj keď som realizovaný tlačiť názov tohto súboru, som to 50 00:02:37,190 --> 00:02:40,080 realizovaná skôr, než som používa sa v hlavnom okne. 51 00:02:40,080 --> 00:02:43,160 Teraz, mohli by sme sa vrátiť k starej verzie a dať názov tlač je 52 00:02:43,160 --> 00:02:44,450 implementácia do top. 53 00:02:44,450 --> 00:02:48,730 >> Ale ja si namiesto toho len dať C tip že je tu funkcia, ktorá príde. 54 00:02:48,730 --> 00:02:55,390 Konkrétne, nad hlavným môžem vyhlásiť, tlačiť názov, rovnako ako som to urobil skôr, ale 55 00:02:55,390 --> 00:02:59,450 koniec riadku bodkočiarkou, a tým sľubuje zaviesť, ale ešte nie je 56 00:02:59,450 --> 00:03:02,180 v skutočnosti vykonáva funkciu volal názov tlače. 57 00:03:02,180 --> 00:03:05,860 Aj potom môže mať hlavné v hornej časti mojej súbor, ako som dúfal, a môžem skutočne 58 00:03:05,860 --> 00:03:07,440 realizovať názov tlačového v spodnej časti. 59 00:03:07,440 --> 00:03:12,860 >> Keby som sa vrátiť do svojho terminálu a prekompilovať funkcii nulový s make, 60 00:03:12,860 --> 00:03:14,390 Tentoraz to preloží. 61 00:03:14,390 --> 00:03:18,240 A keď som ho spustiť s bodkou funkciou lomítkom nula poskytovanie moje meno, ja som 62 00:03:18,240 --> 00:03:20,650 pozdravil ako "Dobrý deň, David." 63 00:03:20,650 --> 00:03:22,268