Ce înseamnă revenirea la zero în limbajul C?


Cel mai bun răspuns

Presupun că vorbești despre funcția „main ()”?

În UNIX / Linux, unde C a fost inventat (și, eventual, în alte sisteme de operare), când un program iese, acesta returnează o „stare de ieșire” pe care sistemul care a pornit-o se poate folosi pentru a spune dacă a reușit sau nu.

Un rezultat returnat de zero înseamnă „Totul a funcționat OK!” – un rezultat diferit de zero indică un fel de cod de eroare.

Acest lucru nu este folosit prea mult (dacă este deloc) în medii grafice în care oamenii lansează programe de pe o pictogramă sau ceva de genul acesta. Dar în aplicațiile din linia de comandă, este o mână de Dumnezeu.

Luați de exemplu instrumentul „face” – care este utilizat pentru compilarea și conectarea aplicațiilor complicate. Diferitele compilatoare și linkere fac un „return 0” atunci când programul la care lucrează este compilat corect – sau „returnează 1” dacă nu a fost compilat.

Programul „make” examinează returnarea starea fiecărui program pe care îl rulează – și întrerupe construcția dacă unul dintre ei returnează altceva decât zero.

Acesta este un lucru foarte util.

Deci am un program pe care l-am scris că face unele prelucrări de imagini. Dacă fișierul pe care îl citește este corupt, face „return 2” – dacă fișierul nu există, face „return 1” și numai dacă totul a funcționat OK „returnează 0”.

Acum – dacă am un program complicat de construit care are imagini încorporate în pachetul de lansare – pot face ca Makefile să declanșeze programul de procesare a imaginilor – și dacă nu reușește dintr-un anumit motiv – va rupe executarea „make”, așa că o poate remedia.

Toate instrumentele din linia de comandă UNIX / Linux returnează o valoare diferită de zero pentru eșec – deci chiar dacă pur și simplu folosiți programul standard „rm” pentru a șterge un fișier – va face o „Returnează 0” dacă fișierul a fost șters cu succes sau un „returnează 1” dacă nu a putut fi șters din orice motiv.

Câteva programe returnează coduri diferite în funcție de ce anume a greșit – dar acest lucru este destul neobișnuit.

Rețineți, de asemenea, că atunci când apelați funcția „exit (0)” – parametrul „0” este, de asemenea, starea de returnare … la fel faceți „exit (0)” atunci când lucrurile funcționează excelent și „ exit (1) ”când nu sunt.

Răspunde

Acolo a în multe locuri diferite, s-ar putea să executați o declarație return 0 în C, astfel încât această întrebare va primi o varietate de răspunsuri.

răspund la un caz specific:

int main(int argc, char *argv[])

{

...

return 0;

}

De ce returnăm 0 din main?

În familia * IX a sistemelor de operare, exemplificată mai întâi UNIX și apoi Linux, există un program cu un singur cod de ieșire întreg, utilizat în mod nominal pentru a indica succesul sau eșecul.

În majoritatea cazurilor, o valoare 0 indică succesul, iar o valoare diferită de zero este un eșec, valoarea indicând de obicei unele informații specifice despre erori.

Programele C și C ++ care rulează pe sistemele * IX furnizează acest cod de ieșire fie printr-o valoare întreagă transmisă bibliotecii standard funcția exit () , fie prin întregul returnat de la main () .

Deci, în acest caz, returnăm 0 de la main pentru a indica sistemelor * IX că programul sa încheiat cu un cod de succes.

-Mark

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *