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

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

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

Strane: 1 2

[ Pregleda: 20679 | Odgovora: 35 ] > FB > Twit

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 - pre 231 meseci
Zasto se gotovo uvek pise int main()... , kada je glavna funkcija main() funkcije pozivanje drugih, dok ona sam uglavnom ne vraca nikakvu vrednost???
 
Odgovor na temu

IDE

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



Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 14:55 - pre 231 meseci
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...
 
Odgovor na temu

markom
Marko Milivojević
Network Engineer
Google
Mountain View

Član broj: 18427
Poruke: 4227
*.singidunum.net.

Sajt: https://markom.rs


+16 Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 14:59 - pre 231 meseci
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]
 
Odgovor na temu

eruanntion
Beograd

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



Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 18:08 - pre 231 meseci
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?
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

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

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 18:22 - pre 231 meseci
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]
 
Odgovor na temu

srdjandakic

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



+14 Profil

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

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

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

Sajt: dejan.lekic.org


+2 Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 19:17 - pre 231 meseci
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
 
Odgovor na temu

Not now, John!

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



+4 Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 20:20 - pre 231 meseci
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
 
Odgovor na temu

eruanntion
Beograd

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



Profil

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

eruanntion
Beograd

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



Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 23:56 - pre 231 meseci
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!
 
Odgovor na temu

_owl_

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



+3 Profil

icon Re: "int main()" vs. "void main()"24.09.2005. u 23:57 - pre 231 meseci
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
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

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



+641 Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 10:37 - pre 231 meseci
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]
 
Odgovor na temu

random
Vladimir Vrzić
Beograd

Član broj: 85
Poruke: 3866
*.eth-wifi.verat.net.

Sajt: www.last.fm/user/vrza


+4 Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 11:06 - pre 231 meseci
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!
 
Odgovor na temu

edmir
Edmir Kovac
Gorazde

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

Sajt: http:\\edmirkovac.netfirm..


Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 11:15 - pre 231 meseci
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.
Kovac
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

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

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 11:34 - pre 231 meseci
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]
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

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



+641 Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 11:34 - pre 231 meseci
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]
 
Odgovor na temu

random
Vladimir Vrzić
Beograd

Član broj: 85
Poruke: 3866
*.eth-wifi.verat.net.

Sajt: www.last.fm/user/vrza


+4 Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 12:06 - pre 231 meseci
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!
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

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



+641 Profil

icon Re: "int main()" vs. "void main()"25.09.2005. u 13:59 - pre 231 meseci
Da. Moja greska...
 
Odgovor na temu

PeRuN_RoJs
kosjeric

Član broj: 67848
Poruke: 46
195.252.103.*



Profil

icon Re: "int main()" vs. "void main()"28.09.2005. u 00:49 - pre 231 meseci
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.....
 
Odgovor na temu

_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 - pre 231 meseci
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 ::
 
Odgovor na temu

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

Strane: 1 2

[ Pregleda: 20679 | Odgovora: 35 ] > FB > Twit

Postavi temu Odgovori

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