Lokalne variable

poruka: 8
|
čitano: 1.268
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
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).
 
0 0 hvala 0
17 godina
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++)
...

 

 

16 godina
odjavljen
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.
 
0 0 hvala 0
17 godina
protjeran
offline
RE: Lokalne variable

naravno ;) na to sam mislio.

15 godina
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...

16 godina
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.部分作品为网上收集整理,供开源爱好者学习使用
 
0 0 hvala 0
17 godina
protjeran
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
 
0 0 hvala 0
16 godina
offline
RE: Lokalne variable

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

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice