🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #775

Re: argv

#775
From: Michal Malecki
Date: Mon, 02 Feb 1998 12:02
48 lines
2810 bytes
Maciej MOCHOL <mmochol@elka.pw.edu.pl> wrote:
: On Wed, 21 Jan 1998, Marek Kotowski wrote:
:> "glowna"  :-)).  I  jeszcze  jedno:  w  kilku  postingach
:> zauwazylem swojego czasu nastepujaca definicje main
:> 
:> void main(void)
:> ...
:> 
:> To blad.  Funkcja main  powinna byc  zawsze typu int. Tak
:> stanowi standard.  Roznica  ma  znaczenie  dla  sekwencji
:> wolajacej i konczacej funkcje main. Dzialanie programu, w
:> ktorym main  ma typ void, jest - formalnie rzecz biorac -
:> niezdefiniowane.

: Na wiekszosci maszyn zwracanie argumentu funkcji jest realizowane
: przez - zazwyczaj - rejestry. Nie ma to __zadnego__ wplywu na 
: sekwencje wolajaca, maja natomiast argumenty wejsciowe - stos.
: void main(void) jest stosowane w bardzo wielu programach i ma na 
: celu podkreslenie ze sie nie zwraca zadnych wartosci.

Ja juz sie raz wypowiadalem na temat zwracania wartosci przez funkcje main.

Zeby sie nie "powtarzac drugi raz", przypomne szanownym kolegom, ze funkcji
main nie wywoluje zadna funkcja w programie, lecz SYSTEM! A system ma swoja
deklaracje funkcji main:

int main( int argc, char** argv, char** envp );

i co go to obchodzi, ze ktos sobie zadeklaruje

void main( void );

Dla systemu jedyna rzecz to przekazac w/w parametry do owej funkcji i zabrac
ze stosu, wzglednie odczytac z rejestru procesora odpowiednia wartosc.
System nic nie interesuje to, ze ktos napisal sobie void. Po prostu zbierze
sobie wartosc. I nawet ewentualnie ja sobie nawet zinterpretuje.
Pisalem juz zreszta o tym, jak ma zwyczaj interpretowac owa wartosc AmigaDOS.

Dlatego tez funkcje main nalezy ZAWSZE W KAZDYM PRZYPADKU deklarowac ze
zwracanym typem wartosci int i na koncu programu umieszczac "return 0".
Ewentualnie inna wartosc, jaka sie chce zwrocic systemowi.


-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Technical Details
Message-ID: <6b4ck5$477@polonez.man.lodz.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!ict.pwr.wroc.pl!news.man.lodz.pl!not-for-mail
References: <Pine.LNX.3.96.980118170312.17197A-100000@qrnik.knm.org.pl> <34C5278D.10A8@bdk.lublin.pl> <34C5B81A.8C6@imm.org.pl> <Pine.GSO.3.95.980128125122.7883N-100000@neutron.elka.pw.edu.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!ict.pwr.wroc.pl!news.man.lodz.pl!not-for-mail
From: Michal Malecki <sektor@zly.kis.p.lodz.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: argv
Date: 2 Feb 1998 12:02:13 GMT
Lines: 48
Message-ID: <6b4ck5$477@polonez.man.lodz.pl>
References: <Pine.LNX.3.96.980118170312.17197A-100000@qrnik.knm.org.pl> <34C5278D.10A8@bdk.lublin.pl> <34C5B81A.8C6@imm.org.pl> <Pine.GSO.3.95.980128125122.7883N-100000@neutron.elka.pw.edu.pl>
NNTP-Posting-Host: sektor@zly.kis.p.lodz.pl
User-Agent: tin/pre-1.4-980105 (UNIX) (SunOS/5.5.1 (i86pc))
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit