[Powered by Google Translate] ЦХРИС ГЕРБЕР: Функција је низ корака у оквиру
већи програм, који је обично намењен да се зове
више пута и са више других локација у
програма.
Приликом креирања Ц функцију, један од услова је да се
одредите тип враћене вредности.
Најједноставнији случај је ситуација у којој позива
код се не бави резултат функције.
То може бити случај када смо штампа податке на
корисника екран, као и са иф.
У том случају, можемо прогласити повратну вредност
да буде типа празнину.
Коришћење празнину једноставно говори компајлеру да не
вредност ће бити враћена.
Хајде да видимо шта ово личи.
>> Хајде да кажемо да имамо функцију која се зове саи_хелло да
траје један аргумент.
Ми ћемо га проћи име особе и она ће приказати поздрав
на екрану.
Име ће бити типа цхар *.
А ми ћемо навести да је као аргумент.
Моја пријава не мора да зна шта је одштампан, или ако га
био штампан.
Тако повратна вредност ће бити типа празнину.
Ова функција може штампати на екрану са командом попут
принтф ("Здраво,% с \ н
", Име);.
Поздравна ће бити приказан и контрола ће бити усвојен
назад на позивање кода.
Једна ствар коју треба напоменути јесте да када је повратна вредност типа је празнина,
не треба да обухвати повратак
изјава у функцији.
Ако одлучите да укључите један, не укључују повратну вредност
као аргумент.
>> У неким случајевима, има смисла да се врате
вредност из функције.
Хајде да кажемо да смо писали функцију зове адд_флоатс.
Ми ћемо га проћи два аргумента, обе плута,
звао први и други.
И то ће нам рећи шта је збир тих сплавова је.
Знамо да ако саберете два плута, резултат
ће бити плутају.
С обзиром на то, ми бирамо повратну тип флоат.
Ова функција ће обављати овај обрачун и врати
вредности у саопштењу попут повратка
Први + други;.
Када је контрола се преноси назад до позива кода,
резултат вредност је сада доступан у том коду.
Можемо сачувати ову вредност овако: резултат = плутају
адд_флоатс (3.14, 1.62
).
Резултат у овом случају би сада садржи вредност 4,76.
>> Подсећања ради, у покретном зарезу су непрецизне.
Дакле, ако је то финансијски обрачун, коришћењем долара и
центи, можемо желети да размотрите прецизан тип података, као што су
инт и обавља обрачун у пенија.
>> Други случај где смо желели да вратимо вредност из
Функција је када желимо да знамо да ли је функција
успешни.
Ако то није био успешан, можда ћемо желети да знају шта тип
грешке.
Рецимо да ми покушавамо да отворите датотеку на диску да рачунају
број знакова у њему.
Ако фајл не може да се отвори, желимо да буде у стању да заустави и
реците корисника о проблему.
>> Ми ћемо позвати наше цоунт_филе_цхарс функције и то ће
узме један аргумент.
Ми ћемо проћи у име фајла помоћу
цхар * назива фајла.
Ова функција може да изгледа отприлике овако.
У овом примеру, очекивали бисмо гроф вратио
бити 0 или више.
То нам оставља негативне бројеве за
користити као надзорних вредности.
Сентинел вредност је једноставно посебна вредност која није
легитимни подаци али не преносе информације.
Ево, ако ја вратити -1 до Позивни број, ја сам
заправо шаљемо поруку да грешке приликом
покушава да приступи фајл.
Тада сам могао да провери ту повратну вредност да утврди да ли мој
Функција позив је био успешан.
Ако је број 0 или већа, ја бих знати
број карактера у фајлу.
Ако, међутим, тај број био мањи од 0, једноставно сам могао
принт да проблем догодио.
Један траде-офф у обзир да резервисањем све
негативне вредности као надзорних вредности, под претпоставком да је ово
32-битни цео број, ја сам у суштини су одвели око
2 милијарде могућем повратку вредности.
>> Враћена вредност типови су један од најважнијих елемената
функција позива.
Надам се овај кратак преглед помогао мислите о
три кључна типа: воид, резултат вредности и Сентинел вредности,
и када сваки од три можда
одговарајуће у вашем коду.
Хвала за гледање.