1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> ЗВУЧНИК 1: Па јас се чувствувам како да сум имаат тенденција да пишува printf Здраво светот или printf 3 00:00:04,010 --> 00:00:08,160 Здраво проценти на доста често во контексти каде што сакате да го испечатите 4 00:00:08,160 --> 00:00:11,360 стринг, понекогаш бара од корисникот дел од стрингот. 5 00:00:11,360 --> 00:00:14,980 Па, не би било убаво ако ние направивме функција на нашите сопствени нарекува, 6 00:00:14,980 --> 00:00:19,900 велат, име на печатење, чија цел во животот е едноставно да се печати Здраво запирка 7 00:00:19,900 --> 00:00:24,560 тој-и-толку со прифаќање на тоа-и-тој како аргумент за таа функција? 8 00:00:24,560 --> 00:00:29,220 Ние може да прогласи функција на нашите сопствени исто како што можеме во Скреч како што следи. 9 00:00:29,220 --> 00:00:35,280 >> Со други зборови, да претпоставиме Би сакал да printf вашето име, а потоа побара од корисникот 10 00:00:35,280 --> 00:00:39,470 за неговото или нејзиното име со низа Кликнете ОК еднаква GetString. 11 00:00:39,470 --> 00:00:42,060 И тогаш сакам да се јавите на функција наречен име печатење 12 00:00:42,060 --> 00:00:44,340 полагање на како свој придонес. 13 00:00:44,340 --> 00:00:47,770 >> Сега за жал, не постои функција наречен име печати во C или во 14 00:00:47,770 --> 00:00:48,950 на cs50 библиотека. 15 00:00:48,950 --> 00:00:51,220 Но, без оглед, затоа што ние може да го направи себе. 16 00:00:51,220 --> 00:00:54,560 Да се ​​изјасни за функција на нашите сопствени и тогаш се имплементира, ние едноставно може да направи 17 00:00:54,560 --> 00:00:59,000 некои простор во оваа датотека и да прогласат оваа функција како што следува, неважечки - 18 00:00:59,000 --> 00:01:01,900 означува дека функцијата не е всушност, се случува да се врати нешто, 19 00:01:01,900 --> 00:01:03,890 иако тоа ќе има пропратен ефект - 20 00:01:03,890 --> 00:01:08,030 печати името, а потоа нека се определи во заграда дека името печати очекува 21 00:01:08,030 --> 00:01:09,680 аргумент од типот стринг. 22 00:01:09,680 --> 00:01:12,180 И воопшто, ќе мислат на тоа како име. 23 00:01:12,180 --> 00:01:15,140 >> И ајде да отвориме нашите заграда и затворете нашата голема заграда. 24 00:01:15,140 --> 00:01:21,930 А потоа printf внатре здраво запирка проценти на новото име на линија запирка. 25 00:01:21,930 --> 00:01:24,570 Со други зборови, иако ова функција е само една линија на кодот, тоа 26 00:01:24,570 --> 00:01:27,290 не сега имаат некои повисоки ниво цел да се печати 27 00:01:27,290 --> 00:01:28,950 нечие име со поздрав. 28 00:01:28,950 --> 00:01:33,115 >> Сега во внатрешноста на главниот, забележите дека јас сум повикувајќи име печатење со пропуштање на коментарите. 29 00:01:33,115 --> 00:01:35,830 И така јас се чини дека сега да имаат комплетна програма. 30 00:01:35,830 --> 00:01:38,650 Единствената разлика е од другите ние сум напишал е дека не само што 31 00:01:38,650 --> 00:01:42,480 оваа програма се главни, тој исто така има декларација и имплементација на 32 00:01:42,480 --> 00:01:44,740 име на печатење, функција на моето. 33 00:01:44,740 --> 00:01:49,505 >> Ајде сега ги собере мојата програма со марка функција нула, и да ја стартувате со точка 34 00:01:49,505 --> 00:01:51,080 сека функција нула. 35 00:01:51,080 --> 00:01:53,390 Кога ќе биде побарано за моето име Јас ќе тип во Давид. 36 00:01:53,390 --> 00:01:55,830 И јас навистина сум пречекан со "Здраво, Дејвид." 37 00:01:55,830 --> 00:02:00,160 >> Сега, излегува јас многу намерно прогласена име печати над главната, 38 00:02:00,160 --> 00:02:03,860 тоа кажува C однапред дека постои постои функција наречена печатење 39 00:02:03,860 --> 00:02:06,930 име, така што можам да ги искористам подоцна во главниот. 40 00:02:06,930 --> 00:02:11,610 Сега, ако јас наместо стави името на печатење на дното на моето досие, како искрено јас 41 00:02:11,610 --> 00:02:15,310 веројатно ќе треба да го стори тоа што главните остатоци првото нешто што јас или 42 00:02:15,310 --> 00:02:18,450 друг корисник гледа во мојот код, излегува дека мојот код е 43 00:02:18,450 --> 00:02:19,780 нема да се компајлира. 44 00:02:19,780 --> 00:02:23,610 >> Поточно, ако одам се враќам на терминален прозорец и да ја стартувате направи функција 45 00:02:23,610 --> 00:02:26,120 нула сега, забележите дека јас сум му викал на. 46 00:02:26,120 --> 00:02:30,340 Ако јас дојдете во мојот терминален прозорец, Ќе видам оваа прва грешка во црвена, 47 00:02:30,340 --> 00:02:33,120 имплицитна изјава на име на функција на печатење. 48 00:02:33,120 --> 00:02:34,220 >> Сега, она што значи тоа? 49 00:02:34,220 --> 00:02:37,190 Добро, иако сум спроведува печати име во оваа датотека, јас не сум 50 00:02:37,190 --> 00:02:40,080 спроведува тоа пред јас сум користи тоа во главната. 51 00:02:40,080 --> 00:02:43,160 Сега, ние би можеле да се вратиме на старите верзија и се стави името на печатење е 52 00:02:43,160 --> 00:02:44,450 имплементација до врвот. 53 00:02:44,450 --> 00:02:48,730 >> Но, можам да наместо само да се даде Ц навестување дека има функција да дојде. 54 00:02:48,730 --> 00:02:55,390 Поточно, над главниот можам да се изјасни печати името, на само како што го направив порано, но 55 00:02:55,390 --> 00:02:59,450 се стави крај на линија со точка-запирка, а со тоа ветувајќи дека ќе се имплементираат, но се уште не 56 00:02:59,450 --> 00:03:02,180 всушност спроведување на функција наречен име печатење. 57 00:03:02,180 --> 00:03:05,860 Тогаш јас може да има главна на врвот на мојата поднесе како што се надеваа, и не можам да всушност 58 00:03:05,860 --> 00:03:07,440 спроведување име печатење на дното. 59 00:03:07,440 --> 00:03:12,860 >> Ако јас сега се вратам на моето терминален прозорец и прекомпајлирате функција нула со направи, 60 00:03:12,860 --> 00:03:14,390 овој пат тоа компајлира. 61 00:03:14,390 --> 00:03:18,240 И ако ја стартувате со точка црта функција нула обезбедување мое име, Јас сум 62 00:03:18,240 --> 00:03:20,650 поздрави како "Здраво, Дејвид." 63 00:03:20,650 --> 00:03:22,268