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
Stellen Sie sich vor, dass diese Initialisierungen in verschiedenen Include-Dateien vorgenommen werden. Das Endergebnis hängt dann von der Reihenfolge ab, in der diese Dateien eingefügt werden.
Nun - auch solche offensichtlichen Fehler bei diesen Externen
Ich schreibe also, dass sie keinen Sinn haben, sie dienen nur der Kompatibilität mit altem Code - ersetzen Sie extern durch input und korrigieren Sie Fehler... Unklarer Zweck.... extern ist bedeutungslos - schlagen Sie es nach
Leider ist die Implementierung von externen Variablen in MQL5 noch nicht abgeschlossen, und deshalb empfehle ich nicht, sie zu verwenden - es könnte zu Problemen führen. Ich meine den Mangel an Kontrolle über die obligatorische einmalige Initialisierung dieser Variablen.
Sie können ihn zum Beispiel so schreiben:
Stellen Sie sich vor, dass diese Initialisierungen in verschiedenen Plugins durchgeführt werden. Das Endergebnis hängt dann von der Reihenfolge ab, in der diese Dateien eingefügt werden.
Oder wir können es so schreiben (ausführbare Datei):
hier haben wir die externe Variable überhaupt nicht initialisiert, aber es gibt auch keinen Fehler.
Dementsprechend gibt es keine Kontrolle darüber, ob die gleichen Variablen in anderen Dateien definiert sind oder nicht. Sie können versehentlich den Namen ändern, aber das Programm wird kompiliert, als ob nichts passiert wäre, obwohl in anderen Dateien eine Variable mit einem anderen Namen steht.
Alles in allem passt es nirgendwo hin. Deshalb ist es besser, Funktionen anstelle von externen Variablen zu verwenden, da diese garantiert nur eine Definition haben, nicht mehr und nicht weniger.
Bei diesem Ansatz sollten Sie überhaupt keinen Computer verwenden. Denn wenn Sie die Augen schließen und auf der Tastatur herumstochern, werden Sie nur Unsinn hören.
Das eigentliche Problem bei extern tritt auf, wenn Sie versuchen, extern aus input zu machen. Ich erinnere mich nicht mehr an die Einzelheiten, es ist schon lange her. Als Ergebnis habe ich extern überhaupt abgelehnt, eine einfache Variable in der Include-Datei deklariert und ihren Wert in der EA inite durch einen Funktionsaufruf gesetzt.
Da haben wir's - selbst so offensichtliche Fehler bei diesen Externen
Deshalb schreibe ich, dass sie keinen Sinn haben, sie dienen nur der Kompatibilität mit alten Codes - ersetzen Sie extern durch input und korrigieren Sie Fehler... sonst sagt die Hilfe... Unklarer Zweck.... Extern macht keinen Sinn - egal, wie sehr man sich bemüht.
Es gibt einen Sinn. In MT5 wird extern in den enthaltenen Dateien überhaupt nicht eingegeben.
Das macht Sinn. In MT5 ist extern in Include-Dateien überhaupt keine Eingabe.
Warum sollten Sie Externs zu Include-Dateien hinzufügen?
Ich weiß nicht, was in der modernen Welt des Programmschreibens vor sich geht, aber ich habe gelernt, im prozeduralen Stil zu schreiben, und dann habe ich angefangen, OOP zu verwenden. Der erste und der zweite Stil implizieren, dass jede logische Einheit voll funktionsfähig sein muss, wenn sie in ein anderes Programm übertragen wird, d.h. eine Funktion wird geschrieben - ihre Beschreibung (Header) enthält alle Parameter, die sie verwendet - sie braucht keine iprouts - man schneidet diese Funktion aus und fügt sie in eine andere Datei ein, sie "bewegt" sich so, wie sie ist - dasselbe gilt für Klassen.
Und iprouts selbst sollten nur die Benutzeroberfläche erstellen, sie sollten immer in der Hauptdatei beschrieben werden.
Und mit extern in der Include-Datei, imho Weg schwer zu bekommen, um den Fehler zu verfolgen,@Alexey Navoykov oben zeigte, wie es passiert, leider mehr als die Hälfte der Variablennamen alle Programmierer haben, um einen Buchstaben den gleichen Namen, der maximale Unterschied bei der Verwendung von Groß- / Kleinbuchstaben, als Beispiel MagicNumber oder Magic - wenn Sie KB aussehen, dann jede andere Variable, so dass in Ihrer Methode ist eine Bedrohung für "Schatten" extern in seiner Variable, zum Glück nur wenige Menschen jetzt verwenden ecterps
warum iprtu's in Include-Dateien hinzufügen?
Ich weiß nicht, was los ist in der modernen Welt des Schreibens von Programmen, aber ich habe gelernt, in prozeduralen Stil zu schreiben, dann begann zu OOP verwenden, sowohl in der ersten und in der zweiten Stil ist es impliziert, dass jede logische Einheit muss voll funktionsfähig sein, wenn in ein anderes Programm übertragen, dh Sie schrieb eine Funktion - in seiner Beschreibung (im Titel) haben alle Parameter, die es verwendet - es braucht nicht iprouts - schneiden Sie diese Funktion und in eine andere Datei eingefügt, es "bewegt", wie es ist - das gleiche mit Klassen.
Und die iprouts selbst sollten nur die Benutzeroberfläche bilden, sie sollten immer in der Hauptdatei beschrieben werden.
Das stimmt nicht. In Include-Dateien fügen Sie Externs hinzu. So können Sie in Include-Dateien die in der Hauptdatei deklarierten Eingaben verwenden.
Übrigens wird sie fast immer benötigt, sobald Sie anfangen, Include-Dateien zu verwenden.
Nicht so. Hinzufügen von Externs zu Include-Dateien. So können Sie in der Include-Datei die in der Hauptdatei deklarierten Eingaben verwenden.
Das ist übrigens genau das, was Sie brauchen, sobald Sie anfangen, Include-Dateien zu verwenden.
Geben Sie ein Beispiel dafür, warum extern verwendet werden sollte
ein Beispiel für die Angemessenheit der Verwendung von externen
Das gibt es schon seit einiger Zeit.
Sie sollten überhaupt keinen Computer benutzen, wenn Sie diesen Ansatz wählen. Denn wenn man die Augen schließt und auf der Tastatur herumstochert, bekommt man nur Mist.
Es ist jetzt schon eine Weile hier.
Das ist es, wovon ich spreche.
Ihr Beispiel ist die Erzeugung von versteckten Fehlern, der Variablenname x wird oft verwendet.... schrieb oben
Imho sollte es so aussehen:
Das ist es, wovon ich spreche.
Ihr Beispiel ist das Laichen von versteckten Wanzen, der Variablenname x wird oft verwendet.... schrieb oben
Imho sollte es so aussehen:
Niemals. Die Variable x sollte nicht nur in einer Funktion, sondern in allen Funktionen verfügbar sein. Und noch mehr - sie sollte sowohl in der Hauptdatei als auch in allen verbundenen Dateien verfügbar sein.