Was verursacht einen Stapelüberlauffehler in mql4? - Seite 3

 
RaptorUK:
Aber es kann mit einer so großen Funktion umgehen ... wie ich erklärt habe, ändern Sie den Funktionstyp und es gibt keinen Kompilierungsfehler für die gleiche Größe der Funktion ...


Bedeutet das also, dass eine int-Funktion mehr Ressourcen zur Ausführung benötigt? Vielleicht können dann Metaquotes init, deinit und start zu voids machen, so dass sie weniger Ressourcen verbrauchen.
 
RaptorUK:
Aber es kann mit einer so großen Funktion umgehen ... wie ich erklärt habe, ändern Sie den Funktionstyp und es gibt keinen Kompilierungsfehler für die gleiche Größe der Funktion ...

. . . oder lassen Sie es als int und lassen Sie return(0); und machen Sie dies für alle Aufrufe . . .

   ReturnedValue = ObCreate("EURUSDg",Column1xg,15,ZoomTimes);
   ReturnedValue = ObCreate("EURUSDa",Column1xa,15,ZoomTimes);

. . . wo ReturnedValue ein int ist . . . raten Sie mal - kein Kompilierungsfehler.


Machen Sie Ihren Code sinnvoll ... und hey presto, wie von Zauberhand verschwindet der Fehler, seltsam, nicht wahr?

 
Eine int-Funktion, die 0 zurückgibt, sollte mit einer void-Funktion vergleichbar sein, was bedeutet, dass es etwas gibt.
 
tonny:

Bedeutet das also, dass eine int-Funktion mehr Ressourcen zur Ausführung benötigt? Vielleicht können dann Metaquotes init, deinit und start zu voids machen, damit sie weniger Ressourcen verbrauchen.
Natürlich benötigt eineint-Funktion mehr Ressourcen für die Ausführung ... sie muss einen Wert zurückgeben und dieser Wert muss im Speicher gespeichert werden, um zurückgegeben werden zu können. Ich habe Leute gesehen, die init, start und deinit als void deklariert haben ... das ist nichts, was ich mache.
 
RaptorUK:

. . . oder lassen Sie es als int und lassen Sie return(0); und machen Sie dies für alle Aufrufe . . .

. . . wo ReturnedValue ein int ist . . . raten Sie mal - kein Kompilierungsfehler.


Machen Sie Ihren Code sinnvoll ... und hey presto, wie von Zauberhand verschwindet der Fehler, seltsam, was?


Die int-Funktion gibt auch 0 zurück. Jedenfalls ist das Problem gelöst, aber was den Fehler angeht, so denke ich, dass er dort auftritt, wo er nicht auftreten sollte.
 
tonny:
Eine int-Funktion, die 0 zurückgibt, sollte mit einer void-Funktion vergleichbar sein, was bedeutet, dass es etwas gibt.
Nein, ist es nicht ... eine void-Funktion gibt keinen Wert zurück ... 0, 1, 10000 Werte benötigen alle den gleichen Speicherplatz ... sie sind alle vom Typ int und ein int benötigt 4 Bytes. void gibt nichts zurück, das benötigt 0 Bytes . . .
 
Das bedeutet, dass selbst mit void, wenn wir weitere Objekte hinzufügen würden, der Stresspunkt erreicht wäre und der Fehler erneut auftreten würde. Sind wir uns da einig?
 
Ich nehme das Schweigen als Ja. Der Fall ist abgeschlossen.
 
tonny:
Das bedeutet, dass selbst mit void, wenn wir weitere Objekte hinzufügen würden, der Stresspunkt erreicht wäre und der Fehler erneut auftreten würde. Sind wir uns da einig?
Nein, ich bin nicht einverstanden.

Aber es scheint, dass Sie Recht haben könnten...
 
RaptorUK:
Nein, das sehe ich nicht so.

Aber es scheint, dass Sie Recht haben...

Jetzt sind wir auf derselben Seite.