[Powered by Google Translate] CHRIS GERBER: Функцията е поредица от стъпки в рамките на
по-голяма програма, която обикновено е предназначен да се нарича
няколко пъти и от множество други места в
програмата.
При създаване на функция C, едно от изискванията е да се
посочите типа на връщаната стойност.
Най-простият случай е ситуация, в която призовава
код не се занимава с резултат от функцията.
Това може да бъде случаят, когато печатате данни на
показване на потребителя, както и с ФОРМАТ.
В този случай, ние можем да декларира стойност за връщане
да бъде от тип невалидни.
Използването на невалидни просто казва на компилатора, че не
стойност ще бъдат върнати.
Нека видим как изглежда това.
>> Нека кажем, че имаме функция, наречена say_hello
приема само един аргумент.
Ще го давате име на човек, и той ще покаже поздрав
на екрана.
Име ще бъде от тип Чар *.
И ние ще се уточни, че като аргумент.
Моята молба не е необходимо да се знае какво е отпечатана или, ако
е отпечатана.
Така стойността на възвръщаемост ще бъде от тип невалидни.
Тази функция може да отпечата на екрана с команда като
ФОРМАТ ("Здравейте,% S \ N
"Име);
Поздрав ще се покаже и контрол ще бъдат предадени
обратно към извикващия код.
Едно нещо, което трябва да се отбележи, е, че когато типа на връщаната стойност е нищожно,
не трябва да включва връщане
изявление във функцията.
Ако решите да включват една, не включват стойността за връщане
като аргумент.
>> В някои случаи, че има смисъл да се върне
стойност от функция.
Нека кажем, че бяхме написването на функция, наречена add_floats.
Ние ще го мине два аргумента, както плавници,
първо и второ.
И то ще ни каже каква е сумата на тези плувки.
Ние знаем, че ако се добавят две плувки заедно, в резултат на
ще бъде с плаваща запетая.
Като се има предвид, че ние избираме връщане тип плувка.
Тази функция ще изпълнява това изчисление и да се върнете
стойностите в изявление като завръщане
първа + втората.
Когато контролът се връща обратно на викащия код,
Получената стойност сега е на разположение с този код.
Ние може да съхранява тази стойност като резултат плувка =
add_floats (3.14, 1.62
);
Резултати в този случай ще съдържа стойността 4,76.
>> Като напомняне, са неточни числа с плаваща запетая.
Така че, ако това е финансово изчисление, използвайки долара и
цента, може да искате да разгледа точният тип данни като
INT и извършване на изчисления в пари.
>> Друг случай, в който би искал да се върне на стойност от
функция е, когато ние искаме да знаем, ако една функция е
успешно.
Ако не беше успешен, може да искате да знаете какъв тип
е станала грешка.
Да кажем, че ние се опитваме да отворите файл на диск, за да се брои
броя на символите в него.
Ако файлът не може да се отвори, ние искаме да бъдем в състояние да спре и
съобщите на потребителя, за проблема.
>> Ще се обадя на нашата функция count_file_chars и той ще
да вземе един аргумент.
Ние ще премине в името на файла, като се използва
Чар * името на файла.
Тази функция може да изглежда нещо подобно.
В този пример, можем да очакваме, графът се завръща в
бъде 0 или повече.
Това ни оставя отрицателни числа, за да
използват като контролни стойности.
Страж стойност е просто особена стойност, която не е
законните данни, но не предават информация.
Тук, ако се върна -1 до извикващия код, аз съм
изпращане на съобщението, че е станала грешка, докато
опитвате да отворите файла.
Мога да се провери дали стойността за връщане, за да се определи дали ми
извикване на функция е била успешна.
Ако броят е 0 или по-голяма, щях да знам
броя на символите във файла.
Ако, обаче, техният брой е бил по-малко от 0, можех просто да
отпечатате, че проблемът се е случило.
Един компромис е да се помисли, че като се запазват всички
отрицателни стойности като контролни стойности, ако приемем, че това е
32-битово цяло число, по същество отне около
2 милиарда възможни стойности се върне.
>> Видове Върната стойност са едни от най-важните елементи на
извиквания на функции.
Се надяваме, че този кратък преглед е помогнал да мислят за
три основни вида: Void, ценности резултат и контролни стойности,
и когато всяка от трите може да бъде
подходящи места в кода си.
Благодаря за гледане.