Olen aikanaan opetellut c:n alkeet (nyt jo hyvin pitkälle unohtunut), mutta aina opettelu tyssää siihen, että missään oppaassa ei aivan perusteellisesti selosteta operaation taustoja/syitä.
Eniten on häirinnyt tämä 'arvon palauttaminen'. Siis wtf, mitä tarkoittaa "...void tarkoittaa että main() osa ei palauta arvoa."? Siis MITÄ arvoa, MINNE ja MIKSI? Mistä "arvosta" puhutaan? Jos ohjelman tarkoitus on vain tulostaa ruudulle tekstiä, niin mitä arvoa ohjelma ei palauta (tai mahdollisesti palauttaa)? Kuka selittäisi tämän mysteerisen "arvon"?
aargh
Eniten on häirinnyt tämä 'arvon palauttaminen'. Siis wtf, mitä tarkoittaa "...void tarkoittaa että main() osa ei palauta arvoa."? Siis MITÄ arvoa, MINNE ja MIKSI? Mistä "arvosta" puhutaan? Jos ohjelman tarkoitus on vain tulostaa ruudulle tekstiä, niin mitä arvoa ohjelma ei palauta (tai mahdollisesti palauttaa)? Kuka selittäisi tämän mysteerisen "arvon"?
aargh
Vastaukset 3
Vanhimmat
Ihan simppeliä, main() arvo palautetaan tietenkin sille joka kutsuu. Kutsuja voi olla esim. KJ, shell, toinen C-ohjelma ...
Bash shell esimerkki:
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-10.html#ss10.4
C-ohjelma esimerkki:
http://www.java2s.com/Code/C/Development/Executesystemcommanddircopyandsoon.htm
Jos mitään ei palauteta, niin kutsuja saa roskaa, mikä on HUONO HOMMA!
Siis main():n PITÄÄ palauttaa int:
http://c-faq.com/ansi/
(kohdasta 11.12a eteenpäin)
Myös: http://c-faq.com/ansi/sd11.html
Kuten sanottiin edellä. Lisäksi yleensä 0 tarkoittaa että kaikki meni hyvin, ja -1 että tapahtui virhe (mikä tahansa kuin 0 -> tapahtui virhe)