[Powered by Google Translate] CHRIS GERBER: O funcție este o serie de măsuri în cadrul unui
program mai larg, care de obicei este destinat să fie numit
de mai multe ori și din alte locații multiple în
programului.
Când creați o funcție C, unul dintre cerințe este de a
specificați un tip de valoare de retur.
Cel mai simplu caz este o situație în care de asteptare
Codul nu este preocupat de rezultatul funcției.
Acest lucru ar putea fi cazul atunci când imprimați date
utilizatorului ecran, ca și cu printf.
În acest caz, se poate declara o valoare de retur
să fie de tip void.
Utilizarea anulate spune pur și simplu că nu compilator
valoare va fi returnată.
Să vedem cum arata.
>> Să spunem că avem o funcție numită say_hello că
ia un singur argument.
Vom trece ea numele unei persoane și va afișa un mesaj de salut
pe ecran.
Numele va fi de tip char *.
Și vom specifica că, ca argument.
Cererea mea nu are nevoie să știe ce a fost tipărit sau în cazul în care
a fost tipărită.
Deci, valoarea returnata va fi de tip nule.
Această funcție poate să imprime la ecranul cu o comandă cum ar fi
printf ("Bună ziua,% s \ n
", Nume);.
Salutul va fi afișat și de control vor fi transmise
Înapoi la început Codul de asteptare.
Un lucru de remarcat este faptul că atunci când tipul de valoarea de retur este nulă,
nu aveți nevoie pentru a include o rentabilitate
declarație în funcție.
Dacă alegeți să includeți unul, nu includ o valoare de retur
ca argument.
>> În unele cazuri, este logic să se întoarcă o
valoare dintr-o funcție.
Să spunem că am fost scris o funcție numită add_floats.
Vom trece ea două argumente, ambele flotoare,
sunat prima și a doua.
Și aceasta ne va spune ce suma acestor flotoare este.
Știm că dacă vom adăuga două flotoare împreună, rezultatul
va fi un flotor.
Având în vedere că, alegem un tip de întoarcere float.
Această funcție va efectua acest calcul și a reveni
valorile dintr-o astfel de afirmație retur
prima + a doua;.
Atunci când controlul este trecut înapoi la codul de asteptare,
rezultând o valoare este acum disponibil pentru acest cod.
Noi putem stoca aceasta valoare astfel: rezultat = float
add_floats (3.14, 1.62
);.
Rezultatul, în acest caz, ar conține în prezent valoarea de 4.76.
>> Ca un memento, valori în virgulă mobilă sunt imprecise.
Deci, în cazul în care acest lucru a fost un calcul financiar, folosind de dolari și
cenți, am putea dori să ia în considerare un tip de date precise, cum ar fi
int și să efectueze calcul în mărunțiș.
>> Un alt caz în care ne-am dori să se întoarcă o valoare dintr-un
Funcția este atunci când vrem să știm dacă o funcție a fost
succes.
În cazul în care nu a avut succes, am putea dori, de asemenea, să știu ce tip de
eroare a avut loc.
Să spunem că suntem încercați să deschideți un fișier de pe disc pentru a conta
numărul de caractere în ea.
Daca fisierul nu poate fi deschis, dorim să fie în măsură să se oprească și să
spune utilizatorul despre problema.
>> Vom numi count_file_chars noastre de funcții și se va
ia un singur argument.
Vom trece în numele fișierului utilizând o
char * filename numit.
Această funcție ar putea arata ceva de genul asta.
În acest exemplu, ne-am aștepta numărătoarea a revenit la
fie 0 sau mai mult.
Acest lucru lasă-ne în numere întregi negative la
folosesc ca valori de santinelă.
O valoare santinelă este pur și simplu o valoare deosebită, care nu este
date legitime, dar nu transmite informații.
Aici, dacă mă întorc un -1 la codul de asteptare, am
trimiterea de fapt, mesajul că a apărut o eroare în timp ce
încercarea de a accesa fișierul.
Aș putea verifica atunci ca valoare de retur pentru a determina dacă-mi
apelul funcției a fost reușită.
Dacă numărul a fost de 0 sau mai mare, aș ști
numărul de caractere din fișierul.
În cazul în care, cu toate acestea, numărul a fost mai mic decât 0, aș putea pur și simplu
imprima ca o problemă a avut loc.
Un compromis este să ia în considerare faptul că prin rezervarea toți
valori negative ca valori santinelă, presupunând că aceasta este o
32-biti, am luat în esență, în jurul valorii de
2 miliarde valorile posibile de returnare.
>> Tipuri de valoare de returnare sunt unul dintre elementele cele mai importante ale
funcției apeluri.
Sperăm că această scurtă trecere în revistă a ajutat crezi despre
trei tipuri principale: nule, valorile rezultate, și valorile santinelă,
și atunci când fiecare dintre cele trei ar putea fi
corespunzătoare în codul dvs..
Multumesc pentru vizionare.