Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 13.4.2008, 16:17   #1
allokin
Veteran
 
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
Određen forumom C++ i Dev-Cpp bagovi

1. Kada kompajliram bilo koji program ispadne mi 450kb velicina, a video sam neku example igricu 25kb, kako je to moguce?

2. Citao sam o osnovama C++, o OOP-u i mislim da sam naucio, samo mi treba praksa tj. iskustvo. Meni trebaju neki tutorijali za advanced programiranje pa jel neko moze da mi da neki link.
allokin je offline   Odgovor sa citatom ove poruke
Stara 13.4.2008, 17:01   #2
<Rio_da>
Starosedelac
 
Član od: 25.1.2007.
Lokacija: Beograd
Poruke: 2.087
Zahvalnice: 213
Zahvaljeno 300 puta na 236 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

Moguce da je ta 450kb default velicina kod Dev-a (mada nisam siguran) kad se kompajlira debug verzija koja je obicno veca od release verzije programa... a i ja trazim neku literaturu trenutno za c++ pa ako nadjem nesto stavljam link
<Rio_da> je offline   Odgovor sa citatom ove poruke
Stara 13.4.2008, 17:31   #3
bvitnik
Starosedelac
 
Član od: 27.12.2005.
Lokacija: Pančevo
Poruke: 1.303
Zahvalnice: 63
Zahvaljeno 438 puta na 328 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

Dev-CPP je statički link-ovao mnoge stvari u program + verovatno je stavio debug podatke, otud tolika veličina.
bvitnik je offline   Odgovor sa citatom ove poruke
Stara 13.4.2008, 17:41   #4
allokin
Veteran
 
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

pa kako da stavim manju velicinu tj. da sklonim debug info?
allokin je offline   Odgovor sa citatom ove poruke
Stara 13.4.2008, 17:51   #5
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.163
Zahvalnice: 2.081
Zahvaljeno 4.922 puta na 2.858 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

Uključi negde u opcijama "Strip all", mislim da se tako zove.
Example igrica je pisana u C-u, C++ programi su veći jer se linkuje više biblioteka. U svakom slučaju će ti statički linkovani C++ program biti veći od C programa.
voodoo_ je offline   Odgovor sa citatom ove poruke
Stara 13.4.2008, 20:36   #6
allokin
Veteran
 
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

Stavio sam "Strip executable" na "Yes" i nista.
Btw, igrica je pisana u c++ sa gomilom headera.
Evo jos pitanja:
1. Moze li neko da mi objasni enum i extern?
2. Nisu mi najjasnije exepcije, cemu sluze i slicno.
allokin je offline   Odgovor sa citatom ove poruke
Stara 14.4.2008, 8:19   #7
Patton
Deo inventara foruma
 
Avatar korisnika Patton
 
Član od: 1.11.2005.
Lokacija: Silent Hill
Poruke: 4.647
Zahvalnice: 157
Zahvaljeno 904 puta na 493 poruka
Slanje poruke preko ICQ-a korisniku Patton Slanje poruke preko MSN-a korisniku Patton Slanje poruke preko Yahooa korisniku Patton
Određen forumom Re: C++ i Dev-Cpp bagovi

Citat:
alokin1995 kaže: Pregled poruke
Stavio sam "Strip executable" na "Yes" i nista.
Btw, igrica je pisana u c++ sa gomilom headera.
Evo jos pitanja:
1. Moze li neko da mi objasni enum i extern?
2. Nisu mi najjasnije exepcije, cemu sluze i slicno.
enum
extern

Nemoj se zaletati sa nekim advanced tutorijalima za C++, kad jos nisi upoznat ni sa osnovama C-a.
Patton je offline   Odgovor sa citatom ove poruke
Stara 16.4.2008, 0:39   #8
allokin
Veteran
 
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

Ne, nego nema objasnjenja u tutorialu
allokin je offline   Odgovor sa citatom ove poruke
Stara 16.4.2008, 5:01   #9
rile
Član
 
Član od: 9.7.2007.
Poruke: 119
Zahvalnice: 2
Zahvaljeno 31 puta na 29 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

Moze da bude vise uzroka velikoj izvrsnoj datoteci.

1. Velicina izvrsne datoteke zavisi od
- debug informacija (strip all bi trebalo da ih odstrani)
- da li je kod iz standardne bibiloteke dinamicki ili staticki linkovan: staticki znaci da je kod u samoj izvrsnoj datoteci, dinamicki znaci da ce kod standardnih biblioteka biti u "dll"-ovima (na windows-u) odnosno "shared library" na linux-u. Ako se radi o windows-u, postoji opcija da se standardna C bibiloteka staticki linkuje, ali ne i ostale (kernel, gdi, i tako dalje).

2. Dev-cpp koristi gcc tako da mozes da pogledas koje opcije zadaje gcc-u. Ako imas nacin da vidis koje tacno komande izdaje Dev-CPP kada kompajlira, obrati paznju na komandne linije pa ih postuj ovde ako ih ne razumes. Na primer, ako vidis "-g" opciju u komandnoj liniji za "gcc" (ili g++) to govori gcc-u da generise debag informacije. -O? (gde je ? broj) je nivo optimizacije i td. Noviji gcc (4.*) ima vrlo dobre optimizacije. Obicno se koristi -O2.

3. Konacno, starije verzije gcc-a nisu tako dobre za optimizaciju velicine koda, narocito za C++ i umele su da generisu prilicno "naduvane" binarne datoteke. Trebalo bi da je verzija 3.3.* solidna, a 4.2.* prilicno dobra (odlicna?).


Da probam i ostala pitanja:

"enum" i "extern":

Te dve stvari su prilicno razlicite: enum je sintaksna struktura dok je "extern" "modifier" odnosno rezervisana rec koja daje instrukciju kompajleru da smatra tako deklarisan simbol definisanim (Deklaracija je na primer "int foo(int);" dok je definicija "int foo(int a) { return a; }", dakle implementacija. Pomocu extern uvodis deklaraciju bez definicije u datu kompilacionu jedinicu, a kompajler ostaje srecan jer "zna" tacno o kakvom se simbolu radi (naravno, linker ce zahtevati da nadje i definiciju da bi mogao da na odgovarajuci nacin poveze razresene simbole).

Enum mozes da zamislis kao niz konstanti. U C++ im je dodeljen i tip podatka. U C-u je enum ekvivalentan int-u tipa podatka, dok je u C++ standardom nije definisana velicina enum-varijable. Najcesce je to int, ali nije garantovano na svim platformama. To, u prevodu znaci da je ovaj kod:

Kod:
enum OPCIJE { CRNO, BELO = 10000, ZUTO };
int o = BELO;
 
OPCIJE opc;
opc = o;
legalan u C-u, ali u C++ nije dobar, iako ga neki kompajleri prihvataju. Problem je u "opc=o" jer, kao sto gore rekoh, enum nema garantovanu velicinu pa konverzija iz int u enum nije garantovana.

(Obrati paznju na "= 10000", zadavanje vrednosti enum-konstanti je opciono i ako se ne zada kompajler zadaje broj pocev od 0 pa na vise, odnosno u primeru gore CRNO bi bilo 1, BELO 10000, ZUTO 10001).


"Eksepcije": u C++ se koriste za kontrolu izvrsavanja koda u izuzetnim situacijama. Na primer, greska deljenja nulom i slicno. Ideja je sledeca: pises kod kao da ce da radi normalno, a sintaksnom "catch" strukturom obezbedjujes ponasanje programa ukoliko nesto krene naopako:

Kod:
try
{
  foo();
  throw int(4);
  bar();
}
catch (int i)
{
  cout << i << endl;
}
Primer je, naravno, besmislen, ali moze da se koristi za objasnjenje: unutar "try" bloka, "throw" eksplicitno baca izuzetak tipa 'int' sa vrednoscu 4. U tom trenutku izvrsenje se nastavlja u "catch" bloku jer smo ga napisali za tip 'int'. Dakle, bar() nikada nece biti pozvan u ovom slucaju. Ukoliko foo baci izuzetak tipa int a unutar foo ne postoji catch za tip int, taj izuzetak se propagira do mesta pozivanja i zatim izvrsavanje nastavlja od 'catch' bloka.


Ako si dobar sa engleskim, preporucujem Bruce Eckel knjigu "Thinking in C++", mislim da je neka od edicija prevedena i stampana na Srpskom. (http://www.mindview.net/Books/TICPP/...ngInCPP2e.html)
rile je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku rile na korisnoj poruci:
allokin (16.4.2008)
Stara 28.4.2008, 13:47   #10
allokin
Veteran
 
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

Pozdrav! Imam jedan problem sada vezan za C jezik. Naime, kodovao sam jedan program u c++ koji pravi fajl velicine koju stavi user (za testiranje jednog mog drugog programa) pomocu "cin" funkcije ali exe ispada preveliki zbog statickog linkovanja pa sam odlucio da pretvorim kod u c za manju velicinu. Tu sam koristio "printf" i "scanf" i lepo kompajlirao ali kada sam uneo velicinu fajla program je zabo. Onda sam ga debugovao i pisalo je "Access violation". Znam sta to znaci ali ne znam sta da radim.
allokin je offline   Odgovor sa citatom ove poruke
Stara 28.4.2008, 14:48   #11
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

A da postaviš kod?
holodoc je offline   Odgovor sa citatom ove poruke
Stara 28.4.2008, 15:01   #12
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.163
Zahvalnice: 2.081
Zahvaljeno 4.922 puta na 2.858 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

Verovatno si kao argumente scanf-a navodio vrednosti, a ne adrese promenljivih u koje hoćeš da upišeš nešto...

znači treba

Kod:
int a;
printf("Unesi nešto: ");
scanf(%d, &a);
a ne

Kod:
int a;
printf("Unesi nešto: ");
scanf(%d, a);
voodoo_ je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku voodoo_ na korisnoj poruci:
allokin (28.4.2008)
Stara 28.4.2008, 16:18   #13
allokin
Veteran
 
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

Aha, ok
allokin je offline   Odgovor sa citatom ove poruke
Stara 28.4.2008, 22:09   #14
allokin
Veteran
 
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

kako da pocnem sa aplikacijama koje se konektuju medjusobno na razne nacine?
allokin je offline   Odgovor sa citatom ove poruke
Stara 1.5.2008, 15:16   #15
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.163
Zahvalnice: 2.081
Zahvaljeno 4.922 puta na 2.858 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

http://www.codersource.net/codersource_win32prog.html , sekcija Win32 Sockets

Na istoj mašini programi mogu da komuniciraju i preko "cevi" (pipes), imaš na istoj stranici.
voodoo_ je offline   Odgovor sa citatom ove poruke
Stara 1.5.2008, 19:29   #16
rile
Član
 
Član od: 9.7.2007.
Poruke: 119
Zahvalnice: 2
Zahvaljeno 31 puta na 29 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

Predlazem da startujes novu temu ali da suzis pitanje na jedan od "raznih nacina" - u protivnom je suvise neodredjeno i verovatno neprimereno formatu foruma.
rile je offline   Odgovor sa citatom ove poruke
Stara 3.5.2008, 1:54   #17
allokin
Veteran
 
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
Određen forumom Re: C++ i Dev-Cpp bagovi

@voodoo_, cuo sam nesto o tome ali hteo sam malo da prosirim svoje znanje
@rile, tema se zove "C i dev-cpp bagovi" tako da nema potrebe za novom. Pitanje je i trebalo da bude objektivno
allokin je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Bagovi na forumu veverica Forum o forumu 1967 18.1.2024 3:44
The Elder Scrolls IV: Oblivion Aljosa Role-Play 3769 8.8.2023 12:21
Forum: predlozi & sugestije oluja Forum o forumu 5976 26.8.2013 20:11
Kolumnisti forumaši oluja „Ja, igrač!” 393 30.7.2011 11:50


Sva vremena su po Griniču +2 h. Sada je 2:59.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com