Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 427
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
Und lesen Sie, wie oft eine statische Variable initialisiert wird. Und die Frage selbst wird wegen ihrer Absurdität verschwinden ;)
Wie ist das zu verstehen: Lokale Variablen, die mit dem Schlüsselwort static deklariert werden, behalten ihre Werte für die gesamte Lebensdauer der Funktion. Jedes Mal, wenn die Funktion erneut aufgerufen wird, enthalten diese lokalen Variablen die Werte, die sie beim vorherigen Aufruf hatten. Ist eine Variable, die in einer benutzerdefinierten Funktion deklariert wird, nicht eine lokale Variable?
Zur zweiten Frage,
Wenn der erste Tick nicht verfängt, dann wird es der zweite tun.
Wie ist das zu verstehen: Lokale Variablen, die mit dem Schlüsselwort static deklariert werden, behalten ihre Werte für die gesamte Lebensdauer der Funktion. Jedes Mal, wenn die Funktion erneut aufgerufen wird, enthalten diese lokalen Variablen die Werte, die sie beim vorherigen Aufruf hatten. Ist eine Variable, die in einer benutzerdefinierten Funktion deklariert wird, nicht eine lokale Variable?
Gibt die Öffnungszeit der Bar zurück. Das wird in der gesamten Bar der Fall sein.
Ich habe es hier. Ich danke Ihnen.
Der Modifikator static macht sie statisch und sie ist bereits im Speicher für statische Variablen, nicht für lokale Variablen, gespeichert.
Das ist der Punkt, den ich nicht verstehe. Meiner Meinung nach spielt es keine Rolle, wo die Variable gespeichert ist, da der Code den Wert der Variable bei jedem Zugriff auf die Funktion auf Null zurücksetzt. Und wozu?
Das ist der Punkt, den ich nicht verstehe. Meiner Meinung nach spielt es keine Rolle, wo die Variable gespeichert ist, da wir mit dem Code den Wert der Variablen bei jedem Zugriff auf die Funktion auf Null zurücksetzen. Und wozu?
Für den ersten Start - bei der Deklaration. Außerdem kontrollieren Sie den Inhalt selbst.
Meiner Meinung nach ist dies jedoch nicht der Fall: Der Code wird jedes Mal Zeile für Zeile gelesen, und jedes Mal, wenn er auf Null trifft, und beim ersten Durchlauf würde die Variable, auch wenn es keine Initialisierung gibt, den Wert Null annehmen. Die statische datetime-Zeichenkette New_Time=0; zwingt das Programm also zu unnötiger Arbeit.
Meiner Meinung nach ist dies jedoch nicht der Fall: Der Code wird jedes Mal Zeile für Zeile gelesen, und jedes Mal, wenn er auf Null trifft, und beim ersten Durchlauf würde die Variable, auch wenn es keine Initialisierung gibt, einen Nullwert annehmen. Die statische datetime-Zeichenkette New_Time=0; zwingt das Programm also zu unnötiger Arbeit.
Du sagst nein, du sagst ja...
Seien Sie nicht beleidigt. Aber Programmierer lesen Texte offensichtlich anders. Ich war immer der Meinung, dass, wenn es im Programm heißt "gleich Null", der Computer es gleich Null setzen muss, egal ob beim Start oder bei wiederholtem Verweis auf eine Codezeile. Und man braucht kein Journal zu besuchen, um zu beweisen, dass die Null-Initialisierung unnötig ist, man muss sie nur entfernen: static datetime New_Time; erzeugt absolut die gleichen Ergebnisse wie static datetime New_Time=0; ich weiß nicht, wie viel schneller das Programm arbeitet, ich gebe zu, dass es überhaupt nicht signifikant ist, aber es beseitigt trotzdem "unnötige Gesten".