Valoarea returnată de main
Probabil ați observat că tipul returnat demain
este int
, dar în cele mai multe exemple dinainte nu s-a returnat, practic, nici o valoare din main
.Ei bine, explicația este următoarea: dacă execuția lui
main
se termină normal, fără a întâlni vreo instrucțiune return
, compilatorul presupune că funcția se termină cu o instrucțiune return implicită:
|
|
Țineți minte că aceasta se aplică numai funcției
main
, din motive istorice. Toate celelalte funcții cu tip returnat trebuie să se termine cu o instrucțiune return
potrivită, care să includă o valoare, chiar și dacă valoarea respectivă nu este folosită deloc.Când
main
returnează zero (fie implicit sau explicit), mediul intrepretează că programul s-a terminat corect. main
poate returna și alte valori, iar unele medii permit accesul la acele valori, deși nu este nici necesar, nici portabil acest comportament între platforme. Valorile pentru main
care, garantat, sunt interpretate în același fel pe toate platformele sunt:Valoare | Descriere |
---|---|
0 | Programul s-a terminat corect. |
EXIT_SUCCESS | Programul s-a terminat corect (la fel ca mai sus). Această valoare este definită în header-ul <cstdlib> . |
EXIT_FAILURE | Programul a eșuat. Această valoare este definită în header-ul <cstdlib> . |
Deoarece instrucțiunea
return 0;
implicită pentru main
este o excepție delicată, unii autori consideră o bună practică să scrie explicit această instrucțiune.