[Powered by Google Translate] Функции се делови од кодот се користи во поголеми програма да се изврши одредена задача. Тие се исто така познат како процедури, subroutines, и потпрограми, бидејќи тие навистина се само мини програми во рамките на програми. И покрај тоа што не може да се забележи, најмногу ви дефинитивно се користат функции веќе ако сте програмирани во C. Кога пишувате работи на екран со користење printf, сте всушност користење на функција наречена printf. Исто така, GetInt и GetString се функции кои CS50 обезбедува за вас. Како програмери, ние ги користиме функции за голем број на причини. Има функции за вршење на заеднички задачи како пишување на екран и се прашува корисникот за влез ни заштедува време кога програмирање. Тоа не е потребно да се напише кодот за да се направи истите нешта бидејќи тие се веќе направено за нас. Тоа не е дури и неопходно за нас да се разбере токму онака како тие функции работат внатрешно. Наместо тоа, ние само треба да знаете како да ги користат или јавете се на нив во нашите програми. Тоа е исто така корисни да се напише функции во поголеми програми дури и ако не сте за планирање на што имаат другите да ги користат, само за поделба на поголемите задачата при рака. На овој начин, ви даде структура на кодот многу како тебе би даде структура на есеј, и со навистина големи проекти ќе им овозможи на повеќе луѓе да работат на различни делови во исто време бидејќи тоа е јасно каде работат една личност завршува, а друг е почнува. Функции обично работат на 1 или повеќе влезови, познат како аргументи или параметри, трансформирање на тие влезови во излез вредност, кои потоа се врати. Сепак, тоа е, исто така, е можно да имаат функции кои не се употребуваат никакви влезни аргументи и не се врати излез. Океј, доволно со меки нешта. Ајде да ги разгледаме во некои реални функции во C. Тука имаме функција наречена квадратен, кои, верувале или не, пресметува квадрат на влез. Ајде да го сецира синтаксата на неа. Првиот збор ќе видите во функција, int, одредува враќање тип на функција, а тоа е, тип C на излез на функцијата. Оваа функција ќе излез вредност со тип int. Следниот збор што го гледате е името на функцијата, плоштадот во овој случај. Именување функции соодветно е особено важно бидејќи тоа е веројатно најголемиот видлив документација на која функција го прави тоа. Тоа може да биде кул да се именува оваа функција Shazam или booyah, но тоа не би ни каже ништо за она што функција го прави тоа. По името на функцијата дојде на влезовите на функцијата, аргументите. Тие се наведени во внатрешноста на сет на загради со двете нивниот вид и име да се користи за нив во телото на функцијата. Квадратни зема само 1 аргумент, int на плоштад, што решив да даде името х. Ова завршува функција декларација или прототип. Кадрави загради околу остатокот од функцијата означување на почетокот и на крајот на функцијата тело, дефиницијата на функцијата себе. Плоштадот е прилично едноставна функција. Тоа е само доби 1 линија, бидејќи сите ние треба да направите е да се размножуваат x по себе. Зборот враќање одредува излез вредност и предизвикувачи на крајот на функцијата. За да го користите квадратни функција, ние треба да се обезбедат соодветни инпути а потоа го фати на излез. Еве, ќе видите неколку начини тоа да го направам. Ние може да помине во суровини int, како 6, или ние може да помине во променлива како. Имајте на ум дека секој пат кога ние го нарекуваме плоштад, ние фаќање на излез во променливата, а потоа печати неа. Сепак, ние не треба да се чува на повратната вредност во променлива, а потоа печати. Ние може само да го испрати директно до printf како што правиме кога сме квадратни 10, но тоа не значи дека ние немаме пристап до повратната вредност на квадратен 10 друго место во кодот. Ајде да погледнеме во уште еден едноставен пример. Овој пат, ние ќе ги сумира 2 плови заедно, така што можеме да видиме што функција изгледа како кога тоа е се здобија 2 влезови, наместо само 1. Како што можете да видите, ова не е многу различно. Сите ние направите е да додадете во 2 аргумент, плови по име б, на аргументот листата со користење запирка за да ја раздели од првиот аргумент, плови. Значи, нашиот плоштад и збирот функции се прилично лесно да се разбере затоа што тие се еднакви на функциите што сте виделе досега во траат часовите по математика. Сега, ајде да погледнеме функција која е малку поинаква. Наместо да се врати вредност, ја менува држава. Ова е познато како има ефект. Во оваа програма, функцијата printf_fudd_style има враќање тип кој не сме виделе порано, неважечки. Празнина се користи да се каже дека функцијата не враќа ништо. Нема променливи од типот празнина, па ако се обиде да се врати нешто од функцијата како printf_fudd_style, компајлерот ќе се развикам. Внатре printf_fudd_style, можеме да видиме дека додека функција се уште врши задачата, имено, прекинувачки сите РС да WS, точка на функцијата е да се измени стринг, а потоа печати ја надвор на екранот, промена на државното на програмата наместо враќање резултат. Користење на оваа функција е многу сличен на користење на нашата плоштад и збирот функции, освен ние не чување на резултат во променлива или да го исклучите во друга функција бидејќи не постои резултат би можеле да зборуваме. Значи, кога ќе се собере и да ја стартувате нашите Elmer овски програма, ќе видите дека "Ти rascally зајакот!" добива трансформира во право на "Ти wascally wabbit!" Конечно, тука е уште 1 функција вреди да се разговара откако сте го користат во секоја програма Ц некогаш сте се напишани, главниот. Главните е во функција многу како и секој друг. Тоа е се здобија со враќање тип, име, листа на аргументи, и телото. Враќањето тип на главната е секогаш int, и ова int се користи за да комуницираат статусот на програма, кога ќе заврши. Дали може да работи успешно, или не ја заврши рано поради грешка? Враќање на нула означува успешна рок, и враќање било не-нулта вредност укажува на грешка. Во зависност од видот на програма сте пишување, враќање различни кодови за различни грешки можат да бидат корисни за луѓе кои користат вашата програма подоцна. Мрежа аргументи се малку посложена. Аргументот листа може да биде празна, кои укажуваат на пишување празнина помеѓу заградите, или листа може да има 2 аргументи: на int и низа на char * s. Тие се користат кога вашата програма има намера да ја користите аргументи предадена во на командната линија, кога на програмата е повикана. На int аргумент е обично се нарекува argc, и тоа е еднакво на должината на char * низа, познат како argv. Argv содржи командната линија аргументи предадена во програмата. Во друг кратко, ние ќе зборуваме за тоа како да ги користат овие променливи во повеќе детали. За сега, можете да се чувствуваат слободни да прогласи главната било начин. Јас обично изберете да го пишувам од пократок начин, без аргументи, кога е можно. Сега дека знаете како да се напише функции, вие многу добро на вашиот начин на развивање на поголеми, посложени програми. Моето име е Нејт Hardison. Ова е CS50.