Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

"int main()" vs. "void main()"

[es] :: C programiranje :: "int main()" vs. "void main()"

Strane: 1 2

[ Pregleda: 5546 | Odgovora: 35 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

eruanntion
Beograd

Član broj: 63147
Poruke: 51
*.adsl.sezampro.yu.



Profil

icon "int main()" vs. "void main()"24.09.2005. u 14:37

Zasto se gotovo uvek pise int main()... , kada je glavna funkcija main() funkcije pozivanje drugih, dok ona sam uglavnom ne vraca nikakvu vrednost???
24.09.2005. u 14:37 

IDE

Član broj: 53403
Poruke: 535
*.crnagora.net.



Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 14:55
cini mi se da je u pitanju razlkika izmedju c-a i c++-a....
cini mi se da je u c++-u standard takav da main treba da vraca int, a u c-u ne mora....
tako nesto...
bilo mi je nevazno pa nisam mnogo citao o tome...
there's something out there
waiting for us,
and it ain't no man...
24.09.2005. u 14:55 

markom
Marko Milivojević
Senior Network Expert, Vodafone
64°08'N - 21°56'W

Administrator
Član broj: 18427
Poruke: 3886
*.singidunum.net.

Jabber: markom@elitesecurity.org
ICQ: 2354227
Sajt: markom.info


Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 14:59
Svaki program koji se izvršava u operativnom sistemu po završetku vrati izlaznu vrednost (exit code). Ovo je upravo izlazna vrednost funkcije "main".

Marko.

[Ovu poruku je menjao markom dana 24.09.2005. u 15:59 GMT+1]
„Adminčić“

OV SM
LA PK


24.09.2005. u 14:59 

eruanntion
Beograd

Član broj: 63147
Poruke: 51
*.adsl.sezampro.yu.



Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 18:08
Znaci, ova vracena vrednost koja se dostavlja OS-u predstavlja zavrsnicu programa! Ali sta se desava ako main funkciju deklarisem sa void? Prepravio sam neke lakse programcice, deklarisuci main umesto sa int sa void ( i naravno bez return-a na kraju), i isto su radili sasvim ok! To mi nije jasno! Kako da OS dozvoljava da main funkcija koja je deklarisana sa void radi jednako dobro kada je deklarisana sa int? Da li to znaci da OS izvrsava program, ali posto nema nikakve vrednosti na kraju, on ga uopste ne zavrsava?
24.09.2005. u 18:08 

Burgos
Zrenjanin

Član broj: 12484
Poruke: 1245
*.ppp-bg.sezampro.yu.

ICQ: 290190857
Sajt: www.last.fm/user/Burgos


Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 18:22
Po ANSI C standardu (a i C++) main MORA da vraca int vrednost.

Jeste li se ikada susreli sa onim: 'Program xxx terminated with exit code yyy'

Znaci, programi ce raditi i ako main ne vraca vrednost, ali po standardu to NIJE DOZVOLJENO.

[Ovu poruku je menjao Burgos dana 24.09.2005. u 19:23 GMT+1]
"Don't you worry about wikipedia, we'll change it when we get home... We'll change a lot of things..."
Homer J. Simpson
Ovo mora u potpis:
"Portability is for people who cannot write new programs" Linus T.
24.09.2005. u 18:22 

srdjandakic
Novi Sad / Beograd

Član broj: 11297
Poruke: 386
*.sbb.co.yu.

Sajt: fortmobile.com


Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 19:13
BTW, http://faq.cprogramming.com/cg...r=1044841143&id=1043284376
24.09.2005. u 19:13 

leka
Dejan Lekić
senior software engineer, 3Developers Ltd.
London, UK

Član broj: 234
Poruke: 2530
..31.216.81.gus.vf.siwnet.net.

Sajt: dejan.lekic.org


Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 19:17
O ovome se diskutovalo na ES-u u vise navrata... Ukratko - int main() je STANDARD i treba to koristiti. void main() je za lenje (lose) programere koje mrzi da kucaju malo duzu liniju...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
24.09.2005. u 19:17 

Not now, John!

Član broj: 231
Poruke: 1307
*.teol.net.



Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 20:20
Kod int main(), možeš komadnom return 0 da izađeš iz programa, a to često zatreba. Kod void main() ne možeš koristiti return.
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
24.09.2005. u 20:20 

eruanntion
Beograd

Član broj: 63147
Poruke: 51
*.adsl.sezampro.yu.



Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 23:52
Sve u svemu, koliko ja kapiram, sistematski nema gotovo nikakve razlike, samo se trazi da se postuje standard!
24.09.2005. u 23:52 

eruanntion
Beograd

Član broj: 63147
Poruke: 51
*.adsl.sezampro.yu.



Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 23:56
Citat:
Kod int main(), možeš komadnom return 0 da izađeš iz programa, a to često zatreba. Kod void main() ne možeš koristiti return.



Mislim da se moze koristiti return, ali se ne navodi nikakva vrednost, odnosno, pis'o, ne pis'o, isto ti se 'vata!
24.09.2005. u 23:56 

_owl_
Centar - BG

Član broj: 318
Poruke: 989
*.vdial.verat.net.

Sajt: home.drenik.net/~owl


Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 23:57
U oba slucaja mozes koristiti komandu return, samo u slucaju kada je main funkcija deklarisana da vraca int mozes pomocu komande return okruzenju vratiti status sa kojim se izvrsio program (npr pogledaj u linux-u koja je vrednost environment promenljive $?).Kada koristis void main najverovatijne se uvek vraca 0.
Owl
24.09.2005. u 23:57 

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 2677
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 10:37
Koliko sam pregledao, C++ standard OBAVEZUJE povratnu vrednost, dok kod C-a
to nije slucaj, i to se smatra NEDORECENOSTCU koju bi bilo pametno ispraviti...

Npr:
http://homepages.tesco.net/~J....FGA/legality-of-void-main.html

P.S. Jedino ukoliko dokument nije star pa se to u medjuvremenu korigovalo...


[Ovu poruku je menjao X Files dana 25.09.2005. u 11:40 GMT+1]
FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
25.09.2005. u 10:37 

random
Vladimir Vrzić
Senior Software Engineer, Vast.com
Stari Cerak

Tehnički konsultant
Član broj: 85
Poruke: 3846
*.eth-wifi.verat.net.

Sajt: www.last.fm/user/vrza


Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 11:06
C89 standard dozvoljava main(), dok noviji C99 standard dozvoljava samo int main ( void ) i int main ( int argc, char *argv[] ).
int rand(void);

Those who do not understand Unix are condemned to reinvent it, poorly.

Upali lampicu — koristi Jabber!
25.09.2005. u 11:06 

edmir
Edmir Kovac
Gorazde

Član broj: 13989
Poruke: 47
*.as36.go.bih.net.ba.

Sajt: http:\\edmirkovac.netfirm..


Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 11:15
I mene je isto to kopkalo.
PA dobro OK za izlazne vriejdnosti ali sta su ulazni parametri
I ja se osjecam lijen kad je ovo u pitanju.
Kova
25.09.2005. u 11:15 

Burgos
Zrenjanin

Član broj: 12484
Poruke: 1245
*.smin.sezampro.yu.

ICQ: 290190857
Sajt: www.last.fm/user/Burgos


Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 11:34
int argc - broj ulaznih parametara
char *argv[] - niz ulaznih parametara


Primer:
Code:
    
    #include <stdio.h>
    
    int main(int argc, char *argv[]){
        
        printf("Ime EXE fajla: %s\n\n", argv[0]);
        
        int i = 0;
        
        //Ispisuje sve parametre
        
        for(i = 0; i < argc; i++)
            printf("%d:\t%s\n", i, argv[i]);
        
        return 0;
        }



[Ovu poruku je menjao Burgos dana 25.09.2005. u 12:35 GMT+1]
"Don't you worry about wikipedia, we'll change it when we get home... We'll change a lot of things..."
Homer J. Simpson
Ovo mora u potpis:
"Portability is for people who cannot write new programs" Linus T.
25.09.2005. u 11:34 

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 2677
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 11:34
Code:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
   int i;

   printf( "Broj argumenata: %d\n\n", argc );

   /* ovde bi trebao da ispise celu liniju sa argumentima, ako ih ima */
   for ( i=0; i<argc; i++ )
      printf( "%s ", argv[i] );

   printf( "\n");

   system( "PAUSE" );

   return 0;
}


Ulazni parametri su ti kada kucaš u Command Prompt-u, npr:

dir c:\windows\system32 >output.txt

pa je:

argc=3

argv[0] == "dir"
argv[1] == "c:\windows\system32"
argv[2] == ">output.txt"


Slicno je i za Windows kada na primer duplim klikom probas da otvoris neki fajl,
pa se poziva pridruzeni program kome se opet prosledjuje selektovani fajl
kao argument, itd...

Citat:

C89 standard dozvoljava main(), dok noviji C99 standard dozvoljava samo int main
( void ) i int main ( int argc, char *argv[] ).

Znači, to je to... Evo ovde:
ISO/IEC 9899:1999
http://www.nirvani.net.nyud.net:8090/docs/ansi_c.pdf
Tačka 5.1.2.2.1

Poslednji put kada sam koristio čist C za konkretne stvari (izuzev za nečije seminarske radove) bio je za C=Commodore Amiga računare koji su imali takozvani
Aztec C i Lattice C kompajlere, a to je bilo definitivno pre ove druge revizije...

To je bilo vreme kada je Bill Gates i dalje bio u DOS-u, dok su Commodore i Atari
vec imali svoje graficke operativne sisteme koji su celi stajali na jednu 720 ili 880KB disketu ;)


[Ovu poruku je menjao X Files dana 25.09.2005. u 12:40 GMT+1]

[Ovu poruku je menjao X Files dana 25.09.2005. u 12:53 GMT+1]
FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
25.09.2005. u 11:34 

random
Vladimir Vrzić
Senior Software Engineer, Vast.com
Stari Cerak

Tehnički konsultant
Član broj: 85
Poruke: 3846
*.eth-wifi.verat.net.

Sajt: www.last.fm/user/vrza


Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 12:06
Citat:
X Files:
Ulazni parametri su ti kada kucaš u Command Prompt-u, npr:

dir c:\windows\system32 >output.txt

pa je:

argc=3

argv[0] == "dir"
argv[1] == "c:\windows\system32"
argv[2] == ">output.txt"


Nije tačno. >output.txt neće biti prosleđeno programu kao parametar, već će stdout biti vezan za taj fajl. Za ovo se brine interpreter komandi.
int rand(void);

Those who do not understand Unix are condemned to reinvent it, poorly.

Upali lampicu — koristi Jabber!
25.09.2005. u 12:06 

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 2677
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 13:59
Da. Moja greska...

FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
25.09.2005. u 13:59 

PeRuN_RoJs
Bjelanovic Aleksandar
kosjeric

Član broj: 67848
Poruke: 46
195.252.103.*

ICQ: 344


Profil

icon Re: "int main()" vs. "void main()"28.09.2005. u 00:49
Ako sve radi sa void (a radi), zasto bi se iko petljao sa int?

Void main () do tokija!!!!


=)

Don't look at me, I'm lost too.....
28.09.2005. u 00:49 

_VampiR_
Dejan Menges
Sarajevo, BiH

Član broj: 51402
Poruke: 83
217.199.128.*



Profil

icon Re: "int main()" vs. "void main()"28.09.2005. u 08:07
Sa void main() mozda i moze proci neki jednostavniji programcic koji nece pozivati ni jedan drugi. Medjutim, sta ako imate shell skriptu koja poziva program u, npr. cetiri instance, i kada skripta mora znati da li je program dobro zavrsen, odnosno ako nije zasto nije?

Tu se koriste najvise ti exit kodovi i tu bez int main( ... ) ne ide.
:: Don't drink contaminated water - drink beer ::
28.09.2005. u 08:07 

[es] :: C programiranje :: "int main()" vs. "void main()"

Strane: 1 2

[ Pregleda: 5546 | Odgovora: 35 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.