🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: argv

#745
From: Marek Kotowski
Date: Thu, 22 Jan 1998 09:34
51 lines
3079 bytes
milosz danielewski wrote:
> 
> On Wed, 21 Jan 1998 12:13:24 +0100, Marek Kotowski <mkot@imm.org.pl>
> wrote:
> >  Pozwole sobie nie zgodzic sie.
> >  Otoz jesli funkcja main jest rozna od innych, to wlasnie
> >"w sensie argumentow i zwracania wartosci".
> 
>  Niby dlaczego ? Czyzby nie dalo sie jej przekazaywac argumentow jak
> kazdej innej funkcji i czy nie zwraca ona tak samo wartosci ?

  Rozumiem, ze postuluje Pan wywolanie

  main(cos1, cos2);   :-)

  Jesli mowimy tylko o C, a nie o innych jezykach czy srodowiskach,
z ktorych wywoluje sie program w C, to to moze oznaczac tylko wywolanie
rekurencyjne main. W standardzie nie ma oficjalnie czegokolwiek
na ten temat. Widzialem kilka programow zglaszanych na konkurs
IOCCC, w ktorych wywolywano rekurencyjnie main. Ale to inna sprawa.

  Co do sprawy glownej. Main jest funkcja specjalna. Nie wiadomo,
kto i jak wywoluje main. Owszem, programiscie dane jest wszystko, 
co sie dzieje miedzy wywolaniem main i jej koncem. Wie, jak wywolac
funkcje, i jak zwracac wartosci. Ale nie wie, np. komu zwraca
wartosc, konczac main. To moga byc inne programy, srodowiska, etc.
Standard nieprzypadkiem duzo o tym mowi, by bylo jasne, jak rzecz
wyglada, czy powinna wygladac.
  Podam przyklad: programowalem kiedys w kompilatorze COBOL-u,
ktory pozwalal - poprzez asembler wbudowany - wywolywac programy
w C. Argumenty dla main przekazywalo sie w ES:BX. Nie bylo to zatem
przekazywanie argumentow "jak kazdej innej funkcji".
  I jeszcze slowo co do wywolania main: jesli Pan z gory zalozy, 
ze wywolanie tej funkcji jest takie same jak kazdej innej w
programie w jezyku C, to tym samym zalozy Pan implicite, ze
zostala ona wywolana przez inny kod w jezyku C, z wlasna funkcja
main, co jest oczywiscie sprzecznoscia sama w sobie.
Owszem, autorzy standardu starali sie, by funkcja dzialala mozliwie
podobnie, jak inne funkcje w C. Ale oczywiscie sa wyrazne
roznice (opisalem podstawowe z nich w innym poscie, chociaz,
zdaje sie, niewiele to niektorych dyskutantow obchodzi).

  Pozdrawiam

  Marek Kotowski

PS. Moj przyjaciel podpowiada mi dobre porownanie programu 
    w C do duszy czlowieka. Nie wiemy, co bylo z nasza dusza
    przed naszym urodzeniem, i co bedzie z nia po naszym
    zgonie. :-) Niestety, nie ma tu zadowalajacego standardu,
    ktory by cos o tym mowil.:-)
Technical Details
Message-ID: <34C712B4.22A0@imm.org.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.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> <34C654EB.8EE@bdk.lublin.pl> <34C5D854.72FF@imm.org.pl> <34c63d57.923429@news.icm.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!news.nask.pl!not-for-mail
From: Marek Kotowski <mkot@imm.org.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: argv
Date: Thu, 22 Jan 1998 10:34:44 +0100
Organization: Instytut Maszyn Matematycznych
Lines: 51
Message-ID: <34C712B4.22A0@imm.org.pl>
References: <Pine.LNX.3.96.980118170312.17197A-100000@qrnik.knm.org.pl> <34C5278D.10A8@bdk.lublin.pl> <34C5B81A.8C6@imm.org.pl> <34C654EB.8EE@bdk.lublin.pl> <34C5D854.72FF@imm.org.pl> <34c63d57.923429@news.icm.edu.pl>
NNTP-Posting-Host: 148.81.238.53
Mime-Version: 1.0
X-Mailer: Mozilla 3.01Gold (Win95; I)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit