Fehler, Irrtümer, Fragen - Seite 2009

 
fxsaber:
Warum keine Warnungen, dass die Variable nicht verwendet wird?

Denn sie ist initialisiert.

 
Alexey Viktorov:

Denn sie ist initialisiert.

Welchen Unterschied macht das also? Sie wird mit einer Konstante initialisiert. Auch dieser Code sollte eine Warnung erzeugen

void OnStart()
{
  int Array[];
  int i;
  
  i = Array[0];
  i = Array[1];
  i = Array[2];
}

Denn die Variable und das Feld sind nirgendwo beteiligt.

 
fxsaber:

Welchen Unterschied macht das also? Sie wird mit einer Konstante initialisiert. Auch dieser Code sollte eine Warnung erzeugen

Denn die Variable und das Array sind nirgendwo beteiligt.

Ich denke, dass solcher Code überhaupt nicht kompiliert werden kann, weil die Array-Größe nicht definiert ist. Aber das ist nur ein Erbsenzähler.

Warum nehmen sie dann nicht teil? Einer Variablen wird ein Array-Zellenwert zugewiesen. Das ist es, was sie in die Berechnungen einbeziehen. Wie kann der Compiler von Ihren Zukunftsplänen erfahren? Ich denke, es so zu machen, wie Sie es sehen, wäre wahrscheinlich richtig, aber sehr schwierig. Wenn Sie versuchen, einen Algorithmus für eine solche Überprüfung darzustellen, können Sie Folgendes schreiben: Der Programmierer prüft, ob einer Variablen ein Wert zugewiesen ist. Wenn nicht, bedeutet dies, dass sie nicht verwendet wird. Versuchen Sie, einen ungefähren Algorithmus anzugeben, mit dem festgestellt werden kann, dass eine Variable initialisiert ist, aber nirgendwo sonst in Berechnungen verwendet wird.

Die Anzahl der Variablen mit demselben Namen... ist fraglich.

 
Alexey Viktorov:

Woher soll der Compiler von Ihren Zukunftsplänen wissen?

Der Compiler verwirft manchmal ganze Abschnitte, weil er weiß

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Alternative Implementierungen von Standardfunktionen/-ansätzen

Renat Fatkhullin, 2016.09.01 23:50

Um zu vermeiden, dass der Compiler die Schleife als unbrauchbar verwirft, müssen Sie die Ergebnisse der Berechnungen verwenden. Machen Sie zum Beispiel Print variable Price.

 
fxsaber:

Der Compiler verwirft manchmal ganze Abschnitte, weil er weiß

Nun, wenn Renat noch nicht genug von Antworten hat, warten wir seine Antwort ab. Und im Prinzip bin ich persönlich mit allem zufrieden.

 
Wenn die Arbeit in der kodobase aktualisiert wurde (der Autor hat den Code angepasst), markieren Sie bitte den entsprechenden Diskussionsfaden als ungelesen.
 

Wie kann ich ein #uninclude erstellen?

// Test.mqh
void Func() {};
#include <Test.mqh>

// Здесь видна Func();

#uninclude <Test.mqh>

// Здесь не видна Func();
 

Korrigieren Sie entweder den Wert oder die Einheit

2017.09.21 11:37:27.564 Tester  EURUSD: preliminary downloading of history ticks started, it may take quite a long time
2017.09.21 11:37:32.564 Tester  EURUSD: "bases\FIBOGroup-MT5 Server\ticks\EURUSD\201708.tkc" download (836044.77 Kb/sec)
2017.09.21 11:37:41.565 Tester  EURUSD: 45% ticks downloaded (535.34 Kb/sec)
2017.09.21 11:37:49.565 Tester  EURUSD: 53% ticks downloaded (518.17 Kb/sec)
2017.09.21 11:38:01.571 Tester  EURUSD: 61% ticks downloaded (530.69 Kb/sec)
2017.09.21 11:38:12.571 Tester  EURUSD: 70% ticks downloaded (547.64 Kb/sec)
2017.09.21 11:38:26.572 Tester  EURUSD: 82% ticks downloaded (543.88 Kb/sec)
2017.09.21 11:38:38.573 Tester  EURUSD: 94% ticks downloaded (552.07 Kb/sec)
2017.09.21 11:38:50.573 Tester  EURUSD: preliminary downloading of history ticks completed, 44.41 Mb in 1:23.008 (547.80 Kb/sec)
 
fxsaber:

Wie macht man ein #uninclude?

Sie können es nicht direkt tun. Code-Refactoring (andere Dateistruktur oder OOP) wird helfen.

 
im CopyTicks-Tester Nullen zurück, ist das normal?
Grund der Beschwerde: