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: 19786 | Odgovora: 35 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: "int main()" vs. "void main()"28.09.2005. u 20:34 - pre 226 meseci
Zasto pravo, kad moze krivo !?!?
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.dyn.optonline.net.



+6 Profil

icon Re: "int main()" vs. "void main()"29.09.2005. u 03:07 - pre 226 meseci
Citat:
PeRuN_RoJs: Ako sve radi sa void (a radi), zasto bi se iko petljao sa int?


Sve radi, osim kad ne radi. Osim toga, ako ste primetili, kraće je kucati int nego void.
 
Odgovor na temu

blaza
n/a

Član broj: 961
Poruke: 743
213.253.116.*



+3 Profil

icon Re: "int main()" vs. "void main()"29.09.2005. u 06:43 - pre 226 meseci
Nije kraće, zato što kasnije moraš da kucaš:
Code:
return x;
Ko ne plati na mostu, platiće na ćupriji:) Zapravo, standard ti dozvoljava da definišeš funkciju main:
Code:
int main(...
a da ne upotrebiš:
Code:
return x;
prilikom čega se kompajler ponaša kao da je našao:
Code:
return 0;
Jedini problem je što svaki kompajler ne podržava ovaj deo standarda.
O_o
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.bowneglobal.com.



+6 Profil

icon Re: "int main()" vs. "void main()"29.09.2005. u 14:37 - pre 226 meseci
Citat:
blaza: Zapravo, standard ti dozvoljava da definišeš funkciju main:
Code:
int main(...
a da ne upotrebiš:
Code:
return x;
prilikom čega se kompajler ponaša kao da je našao:
Code:
return 0;
Jedini problem je što svaki kompajler ne podržava ovaj deo standarda.


E, to, vidiš :) Inače, koliko znam, svaki iole noviji kompajler poštuje ovo, uključujući i dva najpopularnija MSVC 7.x i GCC 3.x
 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.verat.net.



+9 Profil

icon Re: "int main()" vs. "void main()"29.09.2005. u 20:31 - pre 226 meseci
Jel moze neko da objasni ukratko gde odlazi return iz main funckije?
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: "int main()" vs. "void main()"29.09.2005. u 21:32 - pre 226 meseci
Procesu koji ga je pozvao, uglavno je to OS.
 
Odgovor na temu

random
Vladimir Vrzić
Beograd

Član broj: 85
Poruke: 3866
*.fpn.bg.ac.yu.

Sajt: www.last.fm/user/vrza


+4 Profil

icon Re: "int main()" vs. "void main()"30.09.2005. u 12:56 - pre 226 meseci
NrmMyth: Procesu koji ga je pozvao, uglavno je to OS.[/quote]

A OS je jedan proces?
int rand(void);

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

Upali lampicu — koristi Jabber!
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: "int main()" vs. "void main()"30.09.2005. u 21:32 - pre 226 meseci
Cemo sarkasticnost, gospodine?
 
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()"30.09.2005. u 23:34 - pre 226 meseci
Pa otud što nisam razumeo "uglavno je to OS.". Prvi deo rečenice je ok, ali taj drugi ne razumem.
int rand(void);

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

Upali lampicu — koristi Jabber!
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: "int main()" vs. "void main()"01.10.2005. u 08:55 - pre 226 meseci
Izvinjavam se na svojoj ne akuratnosti pi odgovaranju na ovom topicu, vidim da vas je to uznemirilo.
Sta, neznan ni ja koji proces iz OS pokrece momkove conzolne aplikacije, pa ni moje, pa sta necu umrit zbog toga.
Zasto vi odmah nista ponudili ispravku na moj post, ako vam ne odgovara?
 
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()"01.10.2005. u 09:49 - pre 226 meseci
Citat:
Sta, neznan ni ja koji proces iz OS pokrece momkove conzolne aplikacije


Ako pod terminom conzola misliš na komandnu liniju (vidi objašnjenje pravog značenja reči "konzola" ovde), onda je to upravo taj interpreter komandi (shell), i tu nema šta da se ne zna.

Citat:
Zasto vi odmah nista ponudili ispravku na moj post, ako vam ne odgovara?


Jer nisam mogao da dam detaljan odgovor. Ali evo ispravke:

Izlazni status se šalje roditeljskom procesu. Često je to interpreter komandi (ako je program startovan iz komandne linije).

A pitanje je po meni dobro jer nisam potpuno siguran u mehanizam kojim se ovo obezbeđuje na različitim arhitekturama (Unix, Windows..), koje koriste različite mehanizme (funkcije) za kreiranje procesa, pa bih voleo da neko proba detaljnije da to objasni.
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: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: "int main()" vs. "void main()"01.10.2005. u 10:35 - pre 226 meseci
Koga i dalje zanima, neka ide na:

http://groups.google.com/

Upit:

"int main" "void main"

... ima da se nacita kao za lektiru Nikoletina Bursać.

P.S. Da ne zaboravim:

UPIT UPISITE U GORNJI EDIT, A NE U CENTRALNI (KOJI JE SAMO ZA PRETRAZIVANJE GRUPA)


[Ovu poruku je menjao X Files dana 01.10.2005. u 11:36 GMT+1]
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.fsb.hr.



+9 Profil

icon Re: "int main()" vs. "void main()"03.10.2005. u 15:07 - pre 226 meseci
OS nije proces. OS je skup programa, a program se sastoji od procesa, a procesi od threadova. Ta povratna vrijednost se vraca OS-u tj. zapisuje se u jedan od registara posebne namjene i to je ono to. Tu vrijednost koriste programi koji eventualno ovise o prethodnom programu koji je vratio tu vrijednost (npr. da li je prethodni program uspjesno zavrsio ili nije i na osnovu toga izvrsiti neku akciju) i zato je "zgodno" koristiti int main.

Medutim, nisam pristalica toga da to BAS MORA BITI int main, kao sto se to pokusava forsirati jer uvijek sve treba biti stvar izbora.

[Ovu poruku je menjao itf dana 03.10.2005. u 16:08 GMT+1]
 
Odgovor na temu

z@re
Zarko Bulatovic
Split

Član broj: 29849
Poruke: 443
*.cmu.carnet.hr.



+25 Profil

icon Re: "int main()" vs. "void main()"05.05.2006. u 15:00 - pre 219 meseci
Program se ne sastoji od procesa, vec je program nakupina "mrtvih" jedinica i nula na tvom hard disku, a kad operativni sistem odluci pokrenut te jedinice i nule, onda to postaje proces. Dakle proces je program u izvrsavanju.

Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
 
Odgovor na temu

cynique
Ivan Štambuk
Zagreb@Croatia

Član broj: 93690
Poruke: 155
193.198.17.*

ICQ: 106979934
Sajt: istambuk.blogspot.com


Profil

icon Re: "int main()" vs. "void main()"05.05.2006. u 16:33 - pre 219 meseci
U biti je proces kontejner za skup resursa koji predstavljaju instancu trenutno pokrenutog programa. Notepad.exe je jedan program, kad ga pokreneš npr. 5 puta to je 5 različitih procesa istog programa, svaki sa svojim unosom u OS-evoj tablici procesa, sa svojim zauzećem sistemskih resursa etc.

Proces se ne mora uopće sastojati od threadova - npr. tek pošto je kreiran i prije nego je glavna nit proces startana, ili nakon što je terminiran a neki drugi proces ima otvoren handle na njega (nije pozvao CloseHandle() nakon CreateProcess()), pa sve što se čuva jest unos u tablici procesa u kojem je procesov exit status i eventualno još neke informacije ukoliko je bio pokrenut unutar JOB-a.

Mislim da je exit status procesa jednak exit statusu zadnjeg threada koji se terminirao na win, dok je na nekim platformama koje nemaju jasno definiranu dihotomiju proces/thread (npr. Linux gdje se task_struct koristi i za forkane procese i threadove) to malo drugačije.

Iznimka je ako je parent proces izašao prije childa, pa se onda nemaju kome čuvati te informacije. Na win postoji iznimka i za taj slučaj ukoliko je neki treći proces eksplicitno otvorio token od izašlog procesa sa OpenProcess().

Ukoliko C/C++ program eksplicitno ne vrati vrijednost u return-u iz main()-a
1) ili će kompajler to sam ubaciti kao defaultni parametar u ExitProcess(0)
2) ili će se program jednosavno vratiti natrag u OS sa "return" instrukcijom u ISA-i arhitekture platforme na kojoj se izvršava.

Slučaj 2 jest zanimljiv, pa iz njega slijedi da je najkraći win32 program onaj koji ima samo instrukciju "ret" (odnosno retn - return near).

U real-mode .COM programima stvar je još zabavnija, jer izvršni programi ne moraju imati headere za PE (Portable Executable) format, za sekcije, data directories (importe, relokacije..). Stoga slijedi da je najmanji mogući .COM fajl veličine 1 bajta sa sadržajem 0xC3 (opkod za ret). Pokušajte ga napraviti u hex editoru ;-)

Proces iz kojeg je program pozvan (njegov parent) jest obično shell (explorer.exe, bash, sh..). U UNIX modelu procesa je važno da svaki proces ima kakvog-takvog parenta, pa s vremena na vrijeme kernel prošara po listi aktivnih procesa i svima koji imaju parenta koji nije "među živima" dodijeli PID parent procesa na 1 (PID od init(1)). Kad se proces kojeg je init(1) tako formalno "naslijedio" terminira, init(1) poziva neku od wait*(2) fja da im uzme exit status. Na taj se način preventira najezda zombie procesa koji ne rade ništa pametno već samo čekaju da netko dođe i uradi wait*(2) na njih (da im Lara Croft u vidu init(1) odfikari entry u tablici procesa i olakša im unholy dušu).

[Ovu poruku je menjao cynique dana 06.05.2006. u 16:36 GMT+1]
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: "int main()" vs. "void main()"05.05.2006. u 16:51 - pre 219 meseci
Odlicno!
 
Odgovor na temu

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

Strane: 1 2

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

Postavi temu Odgovori

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