Lokalne variable

poruka: 8
|
čitano: 497
|
moderatori: naxeem, F1-IVO, Danny_HR, Lazarus Long
1
+/- sve poruke
ravni prikaz
starije poruke gore
22 mjeseca
neaktivan
offline
Lokalne variable

Imam problem u kompajliranju jednog sourcea. Source je jedna igra (AvP1) i javljaju se greške pri kompajliranju. Koristim Visual Studio 2008. Znam da nije problem u sourcu jer sam ga uspio kompajlirat na starijem Visual Studio .NET 2003. Zato mislim da je problem u konfiguraciji projekta u VS2008. Greške koje mi se javljau su banalne tipa npr za variablu: 'i' - undeclared indentifier zbog toga što je deklarirana unutar jednog bloka naredbi a pristupa joj se iz drugog bloka.

Npr na slici je variabla k. Ona nije vidljiva u drugoj for petlji jer je lokalna unutar prve for petlje (iznad).
No, ima li opcija u kompajleru da negleda variable kao lokalne unutar bloka (npr. bloka for petlje) nego da su sve vidljive unutar cijele funkcije u kojoj se ti blokovi nalaze.

Ovakvih i sličnih grešaka ima previše da su nastale slučajno (preko 900), te mislim da zato ima opcija za to, a i uspješno je kompajlirano na VS Net 2003.

 

 

primjer greske primjer greske
Poruka je uređivana zadnji put sri 17.3.2010 20:59 (valdyr).
3 godine
protjeran
offline
RE: Lokalne variable

U ovom tvom primjeru varijabla k postoji samo u prvoj for petlji, jer je unutar te petlje i deklarirana. Zato se javlja greška u drugoj for petlji tj. undeclared indentifier. To možeš riješiti na dva načina:

 

for(int k = 1; k <= 10; k++)

...

for(int k = 1; k <= 10; k++)
...

 

tj. da u svakoj for petlji napraviš deklaraciju varijable. No, svakako je inteligentnije deklarirati varijablu k prije bilo koje for petlje:

 

int k;

 

for(k = 1; k <= 10; k++)

...

for(k = 1; k <= 10; k++)
...

 

 

3 godine
offline
Lokalne variable

@Tracer: Mislio si reći prije PRVE, a ne prije BILO KOJE for petlje?

U životu ne postoje pobjednici, samo preživjeli.
3 godine
protjeran
offline
RE: Lokalne variable

naravno ;) na to sam mislio.

22 mjeseca
neaktivan
offline
RE: Lokalne variable

Da, ali mislim da je tako namjerno programirano. Ja mogu promijenit (tj deklarirat ponovo) variable unutar bloka, ali je ovdje namjerno tako rađeno. A ima preko 900 takvih grešaka Izlanuo se...  Je li ima opcija u VS da gleda sve variable unutar funkcije kao globalne (za funkciju), jer kompajlirao je na VS Net 2003 bez problema...

3 godine
offline
Lokalne variable

Za starije verzije VS (VB) je postojala opcija 'option explicite' i 'strict'... potraži po opcijama kompilera, možda postoji mogućnost isključivanja (mada se to smatra prljavim programiranjem..).

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
3 godine
offline
Lokalne variable

U MS C++ kompileru između 2003-2010 godine, neke stvari su promjenjene tako da više pašu standardu, tako je u jednom trenutku i promjenjen način kako se interpretira varijabla unutar IF-a.

Mislim da postoji neki flag ili direktiva koju podesiš da ti kompiler bude kompatibilan s starijom verzijom. Pokušaj pronaći nešto na temu MS CL compiler compatibiliti ili sl.

Programko http://programko.bloger.hr
2 godine
online
RE: Lokalne variable

Properties-> C/C++ -> Language ->Force Conformance in For loops

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice