Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 121
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Dann verstehe ich es nicht.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Eigenheiten von mql5, Tipps und Tricks
Alexey Navoykov, 2019.01.14 16:35
Wenn Sie es brauchen, können Sie void OnTick(); ganz am Anfang deklarieren. Aber im Allgemeinen ist die Reihenfolge der Funktionsdeklaration eine zusätzliche Möglichkeit, die Korrektheit des Codes zu kontrollieren. Wenn zum Beispiel in einem Plug-in OnTick() oder, noch schlimmer, OnInit() aufgerufen wird, ist das gut? Die Bibliotheken dürfen Ihren Arbeitscode nicht sehen.Dann verstehe ich es nicht.
Die Forward-Deklaration gilt nur für Klassen und Strukturen, nicht für Funktionen.
Der Punkt ist, dass wenn die Funktionen, die Sie verwenden wollen, im Inlude spezifiziert sind, Sie sie entsprechend dem Vorschlag schreiben müssen, wenn das Inlude unten ist.
Wo liegt das Problem, wenn man einen Einleger früher einsetzt?
Es kann für eine Datei unbequem sein (Funktion mit Körper muss vor dem Aufruf sein), aber wenn die Funktion in mqh - was ist das Problem, die inlude am Anfang einfügen?
Die Forward-Deklaration gilt nur für Klassen und Strukturen, nicht für Funktionen.
Es ist gut, dass Sie das geklärt haben.
Wo liegt das Problem, wenn man einen Einleger früher einsetzt?
Für eine einzelne Datei (eine Funktion mit einem Body, der notwendigerweise vor dem Aufruf steht) mag das unpraktisch sein, aber wenn die Funktion in mqh steht - wo ist das Problem, einen Inline am Anfang einzufügen?
Einige Konstrukte mit Makros haben manchmal ein inlude in der letzten Zeile erfordert. Ich werde Ihnen kein konkretes Beispiel nennen, denn ich bin ihnen in der Praxis schon oft begegnet.
Die Forward-Deklarationen gelten nur für Klassen und Strukturen, nicht für Funktionen.
Einige Konstrukte mit Makros erforderten manchmal ein inlude in der letzten Zeile. Ich werde Ihnen kein konkretes Beispiel nennen, ich bin ihnen in der Praxis schon oft begegnet.
Ich glaube nicht, dass einzelne Makros es wert sind, dafür die architektonische Korrektheit zu opfern.
Der Programmcode muss auf jeden Fall genau nach dem vorgesehenen Algorithmus ausgeführt werden. Der Zugriff auf eine Variable vor ihrer Initialisierung ist unsinnig und sollte nicht kompiliert werden.
Übrigens, wenn ein inlude einige Funktionen verwendet, die dort nicht vorhanden sind, müssen sie trotzdem dort deklariert werden. Genauso wie Klassen und externe Variablen. Ansonsten ist es eine Krücke, keine Einfügung.
Dementsprechend sollte das Plug-in nicht von dem Ort abhängen, an dem es eingesteckt wird.
Übrigens, wenn im inlude Funktionen verwendet werden, die dort nicht vorhanden sind, müssen sie dort trotzdem deklariert werden. Ebenso wie Klassen und externe Variablen. Ansonsten ist es keine Einfügung, sondern eine Krücke.
Was meinen Sie, was ein Inlude ist? Für mich ist es nur ein Stück Text, das einer separaten Datei zugeordnet ist. Und die Wiedereinführung in die Quelle wird ignoriert. Sonst nichts.
Was meinen Sie, was ein Inlude ist? Für mich ist es nur ein Stück Text, das einer separaten Datei zugeordnet ist. Und die Wiedereinführung in die Quelle wird ignoriert. Sonst nichts.
Ich denke, es sollte ein unabhängiger und eigenständiger Code sein. Das macht mehr Sinn, und es ist einfach, diesen Code zu kontrollieren und unabhängige Syntaxprüfungen durchzuführen. Aber wenn alles in verschiedenen Dateien ist und es nicht klar ist, von wo aus es aufgerufen wird, ist es ein Chaos.
Nun, ich denke, es sollte unabhängiger unabhängiger Code sein. Das macht mehr Sinn und ist einfacher zu kontrollieren und eine unabhängige Syntaxprüfung dieses Codes durchzuführen. Und wenn alles über die Dateien verstreut ist und es nicht klar ist, was von wo aus aufgerufen wird - das ist Chaos.
Beispiele für meinen Code wurden bereits veröffentlicht. Ich habe noch keine Rückmeldungen über das Chaos gehört, auch nicht für Incudes, die sich nicht kompilieren lassen.