SPEAKER 1: Така че аз чувствам, че са склонни да напиши ФОРМАТ здравей свят или ФОРМАТ здравей процента и доста често в контекст мястото, където искам да разпечатате низ, понякога задавам потребителското част от този низ. Е, не би ли било хубаво, ако сме създали функция на нашата собствена, наречена, казват, име печат, чиято цел в живота е просто да отпечатате здравей запетая така-кой си, като приеме така-кой си като аргумент за тази функция? Ние може да декларира функция на нашата собствена просто, колкото можем в Scratch, както следва. С други думи, предполагам, че бих искал да ФОРМАТ вашето име и след това да поиска ползвателят за неговото или нейното име с низ S е равна GetString. И след това искам да се обадя на функция наименува печат полагане на S като своя принос. Сега за съжаление, не е функция наименува печат в C или в на CS50 библиотеката. Но няма значение, защото ние могат да го направят сами. За да заявите функция на нашата собствена и после го приложи, ние можем просто да се направи малко място в този файл и да обяви тази функция, както следва, нищожен - което означава, че функцията не е всъщност ще се върне нещо, въпреки че ще има страничен ефект - отпечатате име, и тогава нека да уточни в скоби, че името печат очаква аргумент от тип низ. И като цяло, ще измислим на това като име. И нека да отворим скоба и затворете нашия презрамки. И тогава ФОРМАТ вътре здравей запетая процента е новото име линия запетая. С други думи, въпреки че този функция е само един ред с код, тя няма вече имат някакъв по-висш равнище цел за печат нечие име с поздрав. Сега вътре в основната, забележите, че аз съм призовава име печат, като преминават ите. И така изглежда сега, за да имат пълна програма. Единствената разлика е от другите сме написали е, че не само тази програма са основна, тя също така има декларация и прилагане на име печат, функция на моята собствена. Нека сега съставят програмата си с грим функция нула, и да го стартирате с точка наклонена черта функция нула. Когато бъдете подканени за името ми Ще напишете Дейвид. А аз наистина съм посрещната с "Hello, Дейвид." Сега се оказва, че много умишлено Декларирано наименование печат над основната, като по този начин казва C предварително, че има съществува функция, наречена печат име, така че мога да използвам това по-късно в основния. Сега, ако бях вместо сложи име на печат при дъното на моето досие, като честно казано може би трябва да се направи така, че основните останки първото нещо, което аз или друг потребител вижда в моя код, Оказва се, че моят код е Няма да компилирате. По-конкретно, ако се върна към моя терминален прозорец и тичам да направи функция нулата сега, забележите, че аз се развиках. Ако аз се придвижите нагоре в терминален прозорец ми, Ще видя тази първа грешка в червено, имплицитно декларация на функция име печат. Сега, какво означава това? Е, въпреки че аз съм изпълнена отпечатате име в този файл, аз не съм тя изпълнява преди съм тя се използва в основната. Сега можем да се върнем към старите версия и сложи име на печат изпълнение до върха. Но аз мога вместо просто да даде C намек че има една функция, за да дойде. По-конкретно, по-горе основна мога да заявя, отпечатате име, точно както аз направих по-рано, но сложи край на линията с точка и запетая, като по този начин обещаващи за изпълнение, но все още не действително изпълнение на функцията наименува печат. Тогава мога да имам основна в горната част на моя досие, както се надявах, и мога действително приложат име печат на дъното. Ако сега се върнем към моя терминален прозорец и прекомпилирате функция нула с грим, този път тя обобщава. И ако аз го изпълним с дот функция наклонена черта нула предоставяне моето име, аз съм поздрави като "Здравейте, Дейвид."