[Powered by Google Translate] Funkcijos yra per didelė programos kodas, naudojamas skyriai atlikti tam tikrą užduotį. Jie taip pat žinomas kaip procedūrų, paprogramės ir Subprograms , nes jie iš tikrųjų yra tik mini programas, programų. Nors jums gali jau pastebėjote, jūs neabejotinai naudojamų funkcijų jau jei jūs užprogramuotas C Rašydami stuff ekrane naudojant printf, jūs iš tikrųjų naudojant funkcija vadinama printf. Be to, GetInt ir GetString yra funkcijos, kad CS50 jums suteikia. Programuotojais, mes naudojame funkcijas dėl kelių priežasčių. Funkcijas atlikti bendrąsias užduotis, kaip rašyti į ekraną ir paskatino vartotojo input mums sutaupo laiko, kai programavimo. Tai nėra būtina rašyti kodą, daryti tuos pačius dalykus nes jie jau padarė mums. Jis net nėra būtinas, kad galėtume tiksliai suprasti, kaip šios funkcijos veikia viduje. Vietoj to, mes tiesiog turime žinoti, kaip naudoti arba jiems skambinti mūsų programų. Tai taip pat naudinga rašyti funkcijas didesnių programų net jei jūs neplanuoja kitų juos taiko, tiesiog padalinti didesnę užduotį po ranka. Tokiu būdu, jūs suteikti struktūrą savo kodą, panašiai kaip norite suteikti struktūrą esė, ir tikrai dideliems projektams įjungsite kelis žmones tuo pačiu metu dirbti įvairiose , nes tai aišku, kur vieno žmogaus darbas baigiasi, o kitas prasideda. Funkcijos paprastai veikia 1 ar keliais įvesties kanalais, žinomas kaip argumentus arba parametrų, pakeisti tuos patekimą į produkcijos vertės, kuri vėliau grįžo. Tačiau, tai taip pat galima turėti funkcijas, kad nenaudojame jokių įvesties argumentus ir negrįžta išėjimo. Gerai, pakankamai su pūkuotas dalykų. Paimkime bent kai Daiktinių funkcijų C išvaizdą Čia mes turime funkcija vadinama aikštė, tiki jis ar ne, apskaičiuoja įvesties aikštę. Apsvarstykite jo sintaksę. Pirmasis žodis, kurį matote funkcija, int nurodo grąžinimo funkcijos tipą, tai yra C tipo funkcijos produkcijos. Ši funkcija išvesti su tipo int vertę. Kito žodžio, matote, yra funkcijos pavadinimas, kvadratas šiuo atveju. Yra ypač svarbus tinkamai įvardijimo funkcijas , nes tai turbūt labiausiai matoma dokumentacija funkcija. Jis gali būti kietas pavadinti šią funkciją Shazam ar booyah, tačiau, kad nebūtų mums papasakoti ką nors apie tai, ką funkcija. Po funkcijos pavadinimas ateiti patekimą į funkcijos, argumentai. Jie išvardyti viduje skliausteliuose rinkinys tiek jų tipą ir pavadinimą naudoti juos per kūno funkcijos. Aikštė užima tik 1 argumentą, int aikštėje aš nusprendė suteikti pavadinimą x. Tai baigiasi funkcija deklaraciją arba prototipą. Garbanotieji petnešų aplink likusią funkcijos pažymėti funkcija įstaigos pradžią ir pabaigą, pačios funkcijos apibrėžimas. Kvadratas yra gana paprasta funkcija. Tai tik gavo 1 eilutę, nes visi mes turime padaryti, yra savaime daugintis x. Žodis deklaracija nurodo produkcijos vertės ir sukelia funkcijos pabaigos. Norėdami naudoti kvadratinės funkciją, turime pateikti atitinkamus įėjimus ir tada užfiksuoti produkcija. Čia pamatysite keletą būdų, kaip padaryti, kad. Mes galime perduoti žaliavos int, pavyzdžiui, 6, ar mes galime perduoti panašaus kintamojo. Atkreipkite dėmesį, kad kiekvieną kartą, kai mes vadiname kvadratas, užfiksuoti išėjimo kintamojo ir tada atspausdinti jį. Tačiau mes neturime laikyti sugrįžimo vertę kintamojo ir tada spausdinti. Galėtume tiesiog nusiųsti jį tiesiai į printf, kaip mes darome, kai mes kvadratas 10, bet tai nereiškia, kad mes neturime patekti į 10 kvadratinių sugrįžimo vertę kitur kodą. Leiskite pažvelgti į kitą paprastą pavyzdį. Šį kartą, mes sumos 2 plūdės kartu, kad galėtume pamatyti, ką funkcija atrodo , kai jis gavo 2 įėjimai, o ne tik 1. Kaip matote, tai ne daug skiriasi. Visi mes darome, yra pridėti 2 argumentą, flotacinio pavadintas b, argumentų sąrašo kableliais atskirti ją nuo pirmojo argumento, plūduriuoti. Taigi, mūsų aikštė ir suma funkcijos yra gana lengva suprasti, nes jie atitinka funkcijų, kurias mačiau prieš matematikos klasės. Dabar pažvelkime funkcijos, kuri yra šiek tiek skiriasi. Vietoj grąžinimo vertę, jis keičia būseną. Tai yra žinoma kaip šalutinį poveikį. Šioje programoje, printf_fudd_style funkcija turi grįžimo tipo, kad mes dar nematėte anksčiau, tuščia. Tuštuma yra sakydavo, kad funkcija negrąžina nieko. Nėra tuštumos tipo kintamieji, , todėl, jei jūs bandote grįžti kažką iš kaip printf_fudd_style funkcija, kompiliatorių bus klykauti ne jums. Viduje printf_fudd_style, matome, kad funkcija vis dar atlieka užduotį, būtent, perjungimo visoms RS WS funkcijos yra pakeisti eilutę ir tada atspausdinti jį ekrane, keisti programos būklę, o ne grąžinimą rezultatą. Naudojant šią funkciją yra labai panašus į savo kvadratą ir suma funkcijas, išskyrus mes ne aukštesnėje rezultatą į kintamąjį arba perduoti jį kitos funkcijos nes yra ne rezultatas kalbėti. Taigi, kai mes kaupti ir paleisti mūsų programą Elmer FuDD, pamatysite, kad "Jūs Łotrowski triušis!" bus transformuojama teisę "Jūs wascally Wabbit!" Galiausiai, yra 1 daugiau verta aptarti funkcija nes jūs jį naudoti kiekvieną C programos, jūs kada nors parašytų, pagrindinis. Pagrindinis yra panašiai kaip bet kuri kita funkcija. Jis gavo grįžimo tipo, pavadinimą, pateikia argumentus, sąrašą, ir kūną. Grįžimo tipo Maino visada int ir tai int naudojamas perduoti programos būseną, kai jis baigia. Ar ji paleisti sėkmingai, ar jis baigiasi anksti, nes buvo padaryta klaida? Grįžtant prie nulio, rodo, sėkmingai paleisti, ir grąžinti bet ne nulinės vertės, rodo klaidą. Priklausomai nuo programos rūšies rašote, grąžinti skirtingus kodus įvairių klaidų, gali būti naudinga žmonių, kurie naudojasi savo programą vėliau. Maitinimo argumentai yra šiek tiek sudėtingiau. Argumentų sąrašas gali būti tuščias, nurodyti raštu negaliojančiu tarp skliausteliuose, arba sąrašas gali turėti 2 argumentus: int ir char * s masyvas. Jie naudojami, kai jūsų programa ketina naudoti argumentai perduoti į komandų eilutę, kai programa yra remiamasi. Int argumentas paprastai vadinamas argc ir tai lygūs char * masyvo ilgis, žinomas kaip argv. Argv yra komandinės eilutės argumentai perduoti į programą. Kitoje trumpas, mes kalbame apie tai, kaip naudoti šiuos kintamuosius išsamiau. Nes dabar, jums gali jaustis laisvai paskelbti pagrindinę arba būdas. Aš paprastai pasirinkti, kad rašyti jį trumpesnį kelią, be jokių argumentų, jei įmanoma,. Dabar, kad žinote, kaip rašyti funkcijas, jūs gerai jūsų būdas didesni, kompleksines programas. Mano vardas yra Nate Hardison. Tai CS50.