Article View: pl.comp.lang.c
Article #765Re: argv
From: Michal Malecki
Date: Tue, 27 Jan 1998 12:09
Date: Tue, 27 Jan 1998 12:09
55 lines
3001 bytes
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-mailReferences:
<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