1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> SPEAKER 1: Така че аз чувствам, че са склонни да напиши ФОРМАТ здравей свят или ФОРМАТ 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 Ние може да декларира функция на нашата собствена просто, колкото можем в Scratch, както следва. 9 00:00:29,220 --> 00:00:35,280 >> С други думи, предполагам, че бих искал да ФОРМАТ вашето име и след това да поиска ползвателят 10 00:00:35,280 --> 00:00:39,470 за неговото или нейното име с низ S е равна GetString. 11 00:00:39,470 --> 00:00:42,060 И след това искам да се обадя на функция наименува печат 12 00:00:42,060 --> 00:00:44,340 полагане на S като своя принос. 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 И тогава ФОРМАТ вътре здравей запетая процента е новото име линия запетая. 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 А аз наистина съм посрещната с "Hello, Дейвид." 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 >> Но аз мога вместо просто да даде C намек че има една функция, за да дойде. 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