[Powered by Google Translate] CHRIS Гербер: функцыя ўяўляе сабой серыю крокаў у вялікую праграму, якая, як правіла, прызначаныя для выкліку некалькі разоў і з многіх іншых месцаў у праграмы. Пры стварэнні функцыі C, адным з патрабаванняў з'яўляецца пазначыць тып якое вяртаецца значэння. Найпростым выпадкам з'яўляецца сітуацыя, калі які выклікае Код не звязаная з вынікам функцыі. Гэта можа быць выпадак, калі мы друкуем дадзеныя карыстальнікаў дысплеем, як і з Printf. У гэтым выпадку, мы можам аб'явіць вяртаецца значэння да тыпу несапраўднымі. Выкарыстанне несапраўднымі проста паведамляе кампілятару, што не значэнне будзе вернута. Давайце паглядзім, як гэта выглядае. Давайце выкажам здагадку, што ў нас ёсць функцыя пад назвай say_hello, што прымае адзін аргумент. Мы будзем перадаваць яго імя чалавека, і ён будзе адлюстроўваць прывітанне на экране. Назва будзе тыпу сімвал *. І мы пакажам, што ў якасці аргументу. Маё прыкладанне не трэба ведаць, што было надрукавана або, калі гэта была надрукаваная. Такім чынам, вяртаецца значэнне будзе мець тып несапраўднымі. Гэтая функцыя можа друкаваць на экране з камандай Е ("Hello,% з \ п », Імя);. Прывітанне будзе адлюстроўвацца і кіраванне будзе перададзена назад у выклікае код. Адзінае, што варта адзначыць, гэта тое, што калі тып якое вяртаецца значэння, з'яўляецца нікчэмным, Вам не трэба ўключаць вяртанне Заява ў функцыі. Калі вы вырашылі ўключыць адзін, не ўключаюць вяртаецца значэння у якасці аргументу. У некаторых выпадках мае сэнс вярнуцца значэння з функцыі. Давайце выкажам здагадку, што мы пісалі функцыя называецца add_floats. Мы будзем перадаваць яго двума аргументамі, як паплаўкі, называюцца першай і другой. І ён скажа нам, што сума гэтых паплаўкоў. Мы ведаем, што калі мы дадалі два паплаўка разам, то вынік будзе плаваць. Зыходзячы з гэтага, мы выбіраем тып якое вяртаецца значэння з якая плавае кропкай. Гэтая функцыя будзе выконваць гэты разлік і вярнуць Значэння ў заяве, як вяртанне 1. + другой;. Калі кіраванне перадаецца назад у выклікае код, Атрыманае значэнне цяпер даступная для гэтага кода. Мы можам захоўваць гэтае значэнне наступным чынам: паплавок вынік = add_floats (3,14, 1,62 ). Вынік у гэтым выпадку будзе цяпер ўтрымліваць значэнне 4,76. Нагадаем, што значэнні з якая плавае кропкай з'яўляюцца недакладнымі. Так што, калі гэта быў фінансавы разлік, выкарыстоўваючы даляры і цэнтаў, мы хочам разгледзець дакладны тып дадзеных, такіх як Int і выконваць вылічэнні ў капейкі. Яшчэ адзін выпадак, дзе мы хацелі б вярнуць значэнне з функцыя, калі мы хочам ведаць, калі функцыя была паспяховым. Калі яна не была паспяховай, мы можам таксама хочуць ведаць, які тып Адбылася памылка. Давайце выкажам здагадку, што мы спрабуем адкрыць файл на дыску для падліку Колькасць знакаў у ім. Калі файл не можа быць адкрыты, мы хочам, каб быць у стане спыніць і паведаміць карыстачу аб праблеме. Мы назавем нашу count_file_chars функцыі, і гэта будзе прымаць адзін аргумент. Мы пройдзем ў імя файла з дапамогай сімвал * называецца імем. Гэтая функцыя можа выглядаць наступным чынам. У гэтым прыкладзе, мы чакаем, што колькасць вярнуўся ў 0 або больш. Гэта пакідае нас адмоўныя цэлыя лікі, каб выкарыстоўваць у якасці дазорцы значэння. Дазорцы значэння гэта проста асаблівае значэнне, якое не законныя дадзеныя, але ніяк перадачы інфармацыі. Тут, калі я вярнуся -1 да выклікае кода, я фактычна адпраўляе паведамленне, што адбылася памылка спрабуе атрымаць доступ да файла. Я мог бы праверыць, што вяртаецца значэнне, каб вызначыць, калі мае выклік функцыі прайшоў паспяхова. Калі колькасць была 0 або больш, я хацеў бы ведаць Колькасць знакаў у файле. Калі, аднак, гэтая лічба была менш 0, я мог бы проста друк, што праблема не адбылося. Адзін кампраміс, каб разгледзець, што за кошт рэзервавання ўсіх адмоўныя значэння, як дазорцы значэння, мяркуючы, што гэта 32-разраднае лік, я, па сутнасці, забралі каля 2000000000 магчымых вяртаюцца значэнняў. Тыпы вяртае значэнне з'яўляецца адным з найбольш важных элементаў выклікі функцый. Спадзяюся, гэты кароткі агляд дапамог вам думаць аб тры асноўных тыпу: пустата, вынік значэння, і дазорцы значэння, і калі кожны з трох можа быць дарэчным ў кодзе. Дзякуй за прагляд.