Nejlepší odpověď
Předpokládám, že mluvíte o funkci „main ()“?
V systému UNIX / Linux, kde C bylo vynalezeno (a možná i v jiných operačních systémech), když program ukončí, vrátí „stav ukončení“, podle kterého může systém, který jej spustil, zjistit, zda uspěl nebo selhal.
Vrácený výsledek nuly znamená „Všechno fungovalo dobře!“ – nenulový výsledek označuje nějaký druh chybového kódu.
Toto se příliš nepoužívá (pokud vůbec) v grafických prostředích, kde lidé spouštějí programy z ikony nebo tak něco. Ale v aplikacích příkazového řádku je to dar z nebes.
Vezměte si například nástroj „make“, který se používá ke kompilaci a propojení komplikovaných aplikací. Různé překladače a linkery provedou „návrat 0“, když je program, na kterém pracují správně, zkompilovány správně, nebo „vrátí 1“, pokud nebyl kompilován.
Program „make“ zkoumá návratnost stav každého spuštěného programu – a přeruší sestavení, pokud jeden z nich vrátí něco jiného než nulu.
To je opravdu užitečná věc.
Takže mám program, který jsem napsal provádí nějaké zpracování obrazu. Pokud je soubor, který čte, poškozený, provede „návrat 2“ – pokud soubor neexistuje, provede „návrat 1“ a pouze v případě, že vše funguje dobře, vrátí „0“.
Nyní – pokud mám k sestavení nějaký komplikovaný program, který má obrazy zabudované do jeho vydání – mohu nechat svůj Makefile spustit program pro zpracování obrazu – a pokud z nějakého důvodu selže – rozbije to běh „make“, takže může to opravit.
Všechny nástroje příkazového řádku systému UNIX / Linux vracejí pro selhání nenulovou hodnotu – takže i když k odstranění souboru použijete pouze standardní program „rm“, udělá to „Návrat 0“, pokud byl soubor úspěšně odstraněn, nebo „návrat 1“, pokud jej z jakéhokoli důvodu nelze odstranit.
Několik programů vrací různé kódy podle toho, co se přesně pokazilo – ale je to celkem neobvyklé.
Všimněte si také, že když zavoláte funkci „exit (0)“ – parametr „0“ je také návratový stav … tak udělejte „exit (0)“, když věci fungují skvěle a „ exit (1) ”, pokud nejsou.
Odpovědět
Existuje na mnoha různých místech můžete spustit příkaz návrat 0 v jazyce C, takže tato otázka získá řadu odpovědí.
Nechte odpověděl jsem na jeden konkrétní případ:
int main(int argc, char *argv[])
{
...
return 0;
}
Proč vracíme 0 z main?
V řadě operačních systémů * IX, jejichž příkladem je nejprve UNIX a poté Linux, existuje program s jediným celočíselným ukončovacím kódem, nominálně se používá k označení úspěchu nebo selhání.
Ve většině případů hodnota 0 označuje úspěch a nenulová hodnota je selhání, přičemž hodnota obvykle označuje některé konkrétní informace o chybě.
Programy C a C ++ běžící na systémech * IX poskytují tento kód ukončení buď celočíselnou hodnotou předanou standardní funkci knihovny exit () , nebo celým číslem vráceno z main () .
Takže v tomto případě vrátíme 0 z main, abychom označili systémům * IX, že program byl ukončen kódem úspěchu.
-Mark