🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: argv

#765
From: Michal Malecki
Date: Tue, 27 Jan 1998 12:09
55 lines
3001 bytes
Marek Kotowski <mkot@imm.org.pl> wrote:
: Michal Malecki wrote:
:> 2. Funkcja main moze miec 3 prototypy:
:> int main( );
:> int main( int argc, char** argv );
:> int main( int argc, char** argv, char** envp );
:> 

:   Poprawka: zgodne ze standardem sa tylko dwa prototypy:

:  int main(void);   /* void, a nie pusta lista argumentow */
:  int main(int argc, char** argv);

: Zmienne otoczenia, owszem, w wiekszosci implementacji C moga byc
: przekazywane jako trzeci argument main, ale w standardzie nie sa
: opisane. 

No coz, musze kolege poprawic.
Aktualnie w standardzie jest ustalone, ze wskaznik na zmienne srodowiskowe
jest trzecim parametrem funkcji main.
Drugi sposob, to zmienna globalna, zwana environ (ale nie mam pewnosci, czy
zostalo to ujete w standardzie).

: Natomiast przewidziano dla ich pobierania standardowa
: funkcje biblioteczna o prototypie:
: char *getenv(const char *name);
No i to jest trzeci sposob.

Stanowczo pietnuje wytykanie mi pustych nawiasow!
W standardzie - jak na razie - nie ma roznicy pomiedzy () i (void) jako
listy parametrow funkcji. Jest to tylko dla odpowiedniego oznaczenia pustej
listy. Byc moze w standardzie kiedys pojawi sie propozycja, ze funkcja z
lista "()" jest funkcja o nieokreslonej liczbie parametrow i mozna ja wywolywac
w dowolny sposob. Na razie jednak standard nic takiego nie mowi i funkcje
o nie wpisanych parametrach wywoluje sie wylacznie bez parametrow.

Takich regulek mozna przytoczyc kilka. Jak ktos chce to niech sie ich trzyma,
obowiazku nie ma. Sa to np.:

W zasadzie nalezy:     Ale mozna tez:
STD:                   ALT:
void* t = NULL;        void* t = 0;
if ( t != NULL )       if ( t )
if ( arg[0] == '\0' )  if ( *arg )

Ja sie osobiscie stosuje do tej drugiej notacji i wcale nie uwazam tego za
zly styl programowania.

Pozdrawiam,

-- 
.---.     .   . - 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: <6akiq3$nua@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.LNX.3.96.980122183153.525B-100000@qrnik.knm.org.pl> <34C8723E.5485@imm.org.pl> <6aaotj$3ra$2@sunsite.icm.edu.pl> <34C9F634.1AF9@imm.org.pl> <6ai18e$npt@polonez.man.lodz.pl> <34CC8ED2.59EE@imm.org.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: 27 Jan 1998 12:09:39 GMT
Lines: 55
Message-ID: <6akiq3$nua@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.LNX.3.96.980122183153.525B-100000@qrnik.knm.org.pl> <34C8723E.5485@imm.org.pl> <6aaotj$3ra$2@sunsite.icm.edu.pl> <34C9F634.1AF9@imm.org.pl> <6ai18e$npt@polonez.man.lodz.pl> <34CC8ED2.59EE@imm.org.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