[Powered by Google Translate] Функциите могат да се раздели на кода, използван в по-голяма програма
за изпълнението на определена задача.
Те са известни и като процедури, подпрограми и подпрограми,
тъй като те наистина са само мини програми в рамките на програмите.
Въпреки че може да не сте забелязали,
най-категорично са използвани функции, които вече ако сте програмирали в C.
Когато пишете неща на екрана с помощта ФОРМАТ
сте всъщност използва функция, наречена ФОРМАТ.
По същия начин, GetInt и GetString са функции, които CS50 спомага за вас.
Като програмисти, ние използваме функции за редица причини.
>> Като функции за изпълнение на общи задачи като писане на екрана
и подканване на потребителя за вход ни спестява време при програмирането.
Не е необходимо да пишете код да правят същите тези неща
тъй като те са го направили за нас.
Дори не е необходимо за нас да разберем как точно тези функции работят вътрешно.
Вместо това, ние просто трябва да знаете как да използвате или да ги наречем в нашите програми.
То също е полезно да напишете функции в по-големите програми
дори и ако не сте планиране на други ги използват,
само за да разпределят по-голямата задача в ръка.
По този начин, вие давате структура на кода си, много като теб бих дал структура за есе,
и с наистина големи проекти, които дават възможност на много хора
да работят върху различни части в същото време
тъй като е ясно, когато работата на един човек завършва и друга започва.
>> Функции обикновено работят на 1 или повече входове, известни като аргументи и параметри,
трансформиране на тези входове в изходна стойност, която се връща.
Въпреки това, тя също е възможно да има функции, които не се използват всички входни аргументи
и не се връщат изход.
Добре, достатъчно с пухкави неща.
Нека да разгледаме някои реални функции в C.
>> Тук имаме функция, наречена площад, който, вярвате или не,
изчислява на площада на входа.
Да дисекция синтаксиса на.
Първата дума, ще видите във функцията, вътр
определя типът на връщане на функцията, тип С на изхода на функцията.
Тази функция ще изведе стойност с тип Int.
Следващата думата, която виждате, е името на функцията, квадрат в този случай.
Naming функции по подходящ начин е особено важно
тъй като това е може би най-видимата документация на функцията.
То може да бъде готино да назовем тази функция Shazam или booyah,
но това няма да ни каже нищо за това, което прави функцията.
>> След името на функцията се функцията на входовете, аргументите.
Те са изброени в рамките на набор от скоби
с техния вид и име да използвате за тях в тялото на функцията.
Square отнема само 1 аргумент, вътр на квадрат,
които съм решил да даде името х.
Това завършва декларацията на функцията или прототип.
Фигурни скоби около останалата част от функцията
обозначава началото и в края на тялото на функцията,
определението на самата функция.
Square е доста проста функция.
Имам само 1 ред, тъй като всичко, което трябва да направите, е да се размножават х от само себе си.
Думата връщане определя изходната стойност и води до края на функцията.
За да използвате функцията на площада, ние трябва да предоставят съответните входове
и след заснемане на продукцията.
Тук ще видите няколко начини за това.
Ние можем да минем в суров Int, като 6, или ние можем да преминем в променлива като.
Имайте предвид, че всеки път, когато ние наричаме квадрат,
заснемане на продукцията в променлива и след това го разпечатате.
Въпреки това, ние не трябва да се съхранява на връщаната стойност в променлива и след това да отпечатате.
Ние можем просто да го изпратите директно ФОРМАТ правим, когато сме 10 квадратни,
но това не означава, че ние нямаме достъп до връщаната стойност от 10 квадратни
другаде в кода.
Нека разгледаме един прост пример.
>> Този път, ние ще обобщим две плувки заедно, така че можем да видим това, което изглежда като функция
когато има два входа, вместо само 1.
Както можете да видите, че не е много по-различно.
Всичко, което правим, е да добавите в 2-ри аргумент, с плаваща запетая с име б,
списъкът с аргументите, използвайки запетайка да го отдели от първия аргумент, флоат.
Така че, квадрат и функции сума са доста лесни за разбиране
защото те са еквивалентни на функции, които сте виждали преди в клас по математика.
Сега, нека да разгледаме функция, която е малко по-различен.
Вместо да върне стойност, тя променя държава.
Това е известно като страничен ефект.
В тази програма, функцията printf_fudd_style
има възвръщаемост тип, който не сме виждали преди, невалидни.
>> Void се използва, за да се каже, че функцията не връща нищо.
Не са променливи от тип невалидни,
така че, ако се опитате да върнете нещо от функция като printf_fudd_style,
компилаторът ще ти крещя.
Вътре printf_fudd_style, виждаме, че докато функцията все още изпълнява задача,
а именно, смяна на всички Rs Ws
точка на функцията е да се измени низ и след това да го отпечатате на екрана,
промяна на състоянието на програмата, вместо да се завърне в резултат.
Използването на тази функция е много като използвате нашия площад и функции сума,
освен ние не се съхранява резултата в дадена променлива или да го премине на разстояние до друга функция
тъй като няма резултат, да се говори за.
Така че, когато се съставят и работи нашата програма елмерфудовски,
ще видите, че "мошенически заек!" получава трансформира правото да
"Wascally Wabbit!"
>> И накрая, има една повече функции си струва обсъждането
след като сте го използва във всяка програма на C, която някога съм писал, основно.
Основна функция много като всяка друга.
Има връщания тип, име, списък от аргументи и тяло.
Завръщането на главния винаги е едно цяло число,
и това число е да съобщават статуса на програмата, когато тя завършва.
>> Ли го изпълните успешно, или не го прекратят предсрочно поради грешка?
Връщайки се към нула показва, успешен план,
и връщане на всяка ненулева стойност показва грешка.
В зависимост от вида на програмата, която пишете,
връщане на различни кодове за различни грешки могат да бъдат полезни
за хора, които използват програмата си по-късно.
Мрежови аргументи са малко по-сложни.
>> Списъкът аргумент може да е празно,
, които показват, чрез писмено невалидни между скобите,
или списък може да има два аргумента: INT и набор от Чар * S.
Те се използват, когато вашата програма възнамерява да използва
аргументите, подадени на командния ред, когато програмата се извиква.
INT аргумент обикновено се нарича argc,
и е равна на дължината на Чар масив *, известен като argv.
Argv съдържа аргументите на командния ред, преминали в програмата.
В друг кратък, ние ще говорим за това как да ги използвам по-подробно.
За сега, можете да се чувстват свободно да декларират Основната така или иначе.
Обикновено избират да го напиша по-краткия начин, без аргументи, когато е възможно.
>> Сега, че знаете как да се напише функция,
вие сте добре на пътя си към разработване на по-големи, по-сложни програми.
Моето име е Нейт Hardison. Това е CS50.