Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   variable already defined (http://www.expert-advisor.com/forum/showthread.php?t=3126)

Ca$hDigger 31.07.13 15:17

variable already defined
 
Hallo ich bekomme eine Fehlermeldung "variable already defined". Die Variable kommt öfters vor aber meiner Meinung nach lokal also sie befinden sich immer getrennt innerhalb von geschweiften Klammern :confused:

Gruß

C$D

Racki 31.07.13 15:23

Wenn du doppelt auf den Fehler im Log klickst, dann springt der Editor direkt zu der Stelle, wo er diese Doppeldeklarierung gefunden hat.
Evtl. hast du eine Schleifen kopiert und hier die Zählervariable nicht umbenannt o.ä.

s.l.
Racki

Ca$hDigger 31.07.13 15:35

Schleifen hab ich kopiert genau aber kann man die Zählervariablen wenn sie in durch geschweifte klammern getrennte bereiche nicht gleich machen dachte das wäre der sinn von lokalen variablen im gegensatz zu globalen?

Racki 31.07.13 16:16

Nur, wenn du die Variablen in unterschiedlichen Methoden verwendest.
PHP-Code:

void fkt1(int Anzahl)
{
for (
int a=0;a<=Anzahl;a++)
 {-
Schleife durchlaufen-} // geht

for (int b=0;b<=Anzahl;b++)
 {-
Schleife durchlaufen-} // geht
}

void fkt2(int Anzahl)
{
for (
int a=0;a<=Anzahl;a++)
 {-
Schleife durchlaufen-} // geht

for (int a=0;a<=Anzahl;a++) // doppelte Deklarierung von int a
 
{-Schleife durchlaufen-} 


In fkt2 wird die Variable 'a' 2-Mal lokal deklariert, das funktioniert nicht.
Die Deklarierung eines gleichen Variablennamen in 2 verschiedenen Methoden, also fkt1 und fkt2, stellt kein Problem dar.

Verwendest du einen Übergabeparameter der Methode in der Schleife und versuchst den neu zu deklarieren o.ä?

idefix2 01.08.13 21:26

Tipp: Du kannst die Variable natürlich in beiden Schleifen verwenden, nur musst du in der zweiten Schleife das int weglassen, weil deklariert ist sie da schon.
Delarationen gelten immer für eine ganze Funktion, nicht nur innerhalb von geschweiften Klammern.


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:29 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum