[Powered by Google Translate] Funcțiile sunt secțiuni de cod folosite în cadrul unui program mai larg
pentru a efectua o anumită sarcină.
Ele sunt, de asemenea, cunoscut sub numele de proceduri, subrutine, și subprograme,
într-adevăr, deoarece acestea sunt doar programe de mini în cadrul programelor.
Chiar dacă nu s-ar putea să fi observat,
cel mai sigur au folosit funcțiile deja dacă ați programat în C.
Când scrieți chestii de ecran folosind printf,
pe care îl utilizați, de fapt o funcție numită printf.
De asemenea, GetInt și getString sunt funcții care prevede CS50 pentru tine.
Ca programatori, vom folosi funcțiile pentru un număr de motive.
>> Având funcții pentru a efectua sarcini comune cum ar fi scris pe ecran
și determinat de utilizator pentru intrare ne salvează timp la programare.
Nu este necesar să scrie cod pentru a face aceste lucruri aceleași
deoarece acestea sunt deja făcut pentru noi.
Nici măcar nu e necesar pentru noi să înțelegem exact cum funcționează aceste funcții pe plan intern.
În schimb, trebuie doar să știi cum să folosești sau le puteți apela în programele noastre.
Este, de asemenea, de ajutor pentru a scrie funcții în programe mai mari
chiar dacă nu sunteți de planificare pe având în alții le folosesc,
doar pentru a împărți sarcina mai mare la mână.
În acest fel, vă dau structura codul de mult ca te-ai da la structura un eseu,
și cu proiecte foarte mari, activați mai multe persoane
pentru a lucra la diferite părți, în același timp
din moment ce este clar în cazul în care locul de muncă a unei persoane se termină și începe un alt e.
>> Funcții operează de obicei pe 1 sau mai multe intrări, cunoscut sub numele de argumente sau parametri,
transformarea acestor intrări într-o valoare de ieșire, care este apoi returnat.
Cu toate acestea, este, de asemenea, posibil să aibă funcții care nu utilizează nici un argument de intrare
și nu returnează o ieșire.
Bine, destul cu chestii pufos.
Să aruncăm o privire la unele funcții reale în C.
>> Aici avem o funcție numită pătrat că, crezi sau nu,
calculează pătratul de intrare.
Să diseca sintaxa de ea.
Primul cuvânt care le vedeți în funcție, int,
specifică tipul returnat de funcția, care este, de tip C de ieșire functiei.
Această funcție va afișa o valoare cu tip int.
Cuvântul următor veți vedea este numele funcției, pătrat în acest caz.
Numirea funcțiile în mod corespunzător este deosebit de importantă
din moment ce este, probabil, cel mai vizibil al documentației ceea ce face funcția.
S-ar putea să fie rece pentru a numi această funcție Shazam sau Booyah,
dar asta nu ne-ar spune nimic despre ceea ce face funcția.
>> În urma numele funcției vin intrările la funcția de, argumentele.
Acestea sunt listate în interiorul unui set de paranteze
cu atât lor, tipul și un nume de utilizat pentru ei în cadrul corpului de funcții.
Piața are doar 1 argument, int la pătrat,
pe care am decis să dea numele x.
Aceasta încheie declarația funcției sau prototip.
Cele acolade jurul restul funcției
denotă începutul și sfârșitul corpului funcției,
definirea funcției în sine.
Square este o funcție destul de simplu.
Are doar 1 linie, deoarece tot ce trebuie să faceți este să multiplice x de la sine.
Cuvântul retur specifică valoarea de ieșire și declanșează sfârșitul funcției.
Pentru a utiliza funcția de pătrat, avem nevoie pentru a furniza intrări adecvate
și de captare, apoi de ieșire.
Aici, veți vedea un cuplu de moduri de a face asta.
Ne poate trece într-un int prime, cum ar fi 6, sau putem trece intr-o variabila ca un.
Rețineți că de fiecare dată când ne numim pătrat,
am de captare de ieșire într-o variabilă și apoi imprimați-l.
Cu toate acestea, nu avem pentru a stoca valoarea de retur într-o variabilă și apoi imprimați.
Am putea doar trimite-l direct la printf așa cum facem noi atunci când ne pătrat 10,
dar acest lucru nu înseamnă că nu avem acces la valoarea returnata de pătrat 10
în altă parte în cod.
Să ne uităm la un alt exemplu simplu.
>> De data aceasta, ne vom rezuma 2 flotoare împreună, astfel încât să putem vedea ce o funcție arata ca
atunci când are 2 intrări în loc de doar 1.
După cum puteți vedea, nu e mult diferit.
Tot ce facem este să adăugați în argumentul doilea, un float b nume,
la lista de argumente folosind o virgulă pentru a separa de primul argument, pluti o.
Deci, pătrat nostru și funcțiile sumă sunt destul de ușor de înțeles
deoarece acestea sunt echivalente cu funcțiile pe care le-ați văzut până acum în clasa de matematică.
Acum, să ne uităm la o funcție care este ușor diferită.
În loc de a se întoarce o valoare, care modifică un stat.
Acest lucru este cunoscut ca având un efect secundar.
În acest program, funcția printf_fudd_style
are un tip de întoarcere pe care nu am văzut până acum, anulate.
>> Vidul este folosit pentru a spune că o funcție nu se întoarce nimic.
Momentan nu sunt variabile de tip void,
așa că, dacă încearcă să se întoarcă ceva de la o funcție la fel ca printf_fudd_style,
compilatorul va țipa la tine.
În interiorul printf_fudd_style, vom vedea că în timp ce funcția efectuează încă o sarcină,
și anume, trecerea la toți R Ws,
punctul de funcții este de a modifica șir și apoi imprimați-l pe ecran,
schimbarea stării de programul în loc de a se întoarce un rezultat.
Folosind aceasta functie este foarte mult ca folosind pătrat noastră și funcțiile suma,
, cu excepția nu stocăm rezultatul intr-o variabila sau trece-l la o altă funcție
deoarece nu există nici un rezultat pentru a vorbi despre.
Deci, atunci când am compila și executa programul nostru Elmer Fudd,
veți vedea că "Tu mișel iepure!" se transformă dreptul de a
"Tu wabbit wascally!"
>> În cele din urmă, există funcția 1 mai merită să discutăm
din moment ce ai fost, folosind în fiecare program C care le-ați scris vreodată, principal.
Principal este o funcție mult ca oricare alta.
Are un tip de întoarcere, un nume, o listă de argumente, și un corp.
Tipul de retur principal este întotdeauna un int,
iar acest lucru int este folosit pentru a comunica statutul de program atunci când se termină.
>> Credeți rula cu succes, sau nu se termina mai devreme din cauza unei erori?
Revenind la zero indică o rulare cu succes,
și returnarea orice valoare non-zero, indică o eroare.
În funcție de tipul de program pe care il scrii,
revenind coduri diferite pentru diverse erori poate fi de ajutor
pentru persoanele care folosesc programul mai târziu.
Argumentele rețea sunt un pic mai complicate.
>> Lista argument poate fi gol,
care ne indica prin scris, anulate în între paranteze,
sau lista poate avea 2 argumente: un int și o serie de * e char.
Acestea sunt utilizate atunci când programul intenționează să utilizeze
argumente în trecut pe linia de comandă atunci când programul este invocată.
Argumentul este de obicei numit int argc,
și este egală cu lungimea de matrice char *, cunoscut sub numele de argv.
Argv conține argumentele de linie de comandă trecut în program.
Într-un alt scurt, vom vorbi despre modul de utilizare a acestor variabile în detaliu mai mult.
Pentru moment, vă puteți simți liber să declare principal, fie un fel.
Am de obicei, aleg să-l scrie calea mai scurtă, cu nici un argument, atunci când este posibil.
>> Acum, că știți cum să scrie funcții,
esti bine pe cale de a dezvolta mai mari, mai complexe programe.
Numele meu este Nate Hardison. Acest lucru este CS50.