Fehler, Irrtümer, Fragen - Seite 2208
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
Die berühmte Frage im Vorstellungsgespräch.
Was wird im i stehen?
MQL5-Ausgaben 12. MS Visual Studio-Ausgaben 13.wie es in C++ zu funktionieren scheint. Deshalb habe ich gefragt und beschlossen, zum Beispiel C++ zu lesen. Gleicher Wert um eins nur in der Differenz. Im zweiten Fall scheint es "y" 5 zuzuweisen und dann zu addieren, während es im ersten Beispiel erst addiert und dann zuweist (ich habe lange gebraucht, um herauszufinden, wie es funktioniert =D )
In mql5 sind sie gleiche Operationen, in c++ sind sie unterschiedlich, unten haben Sie gerade ein Beispiel eines Tests auf c++ ))
Die berühmte Frage im Vorstellungsgespräch.
Was wird im i stehen?
MQL5 vergibt 12. MS Visual Studio vergibt 13.Unbestimmt wegen der Nebenwirkung. In diesem Fall handelt es sich um einen dreifachen Effekt. Verschiedene Optimierungen können variable Werte unterschiedlich berechnen. Aus Gründen der Optimierung.
In mql5 sind sie äquivalente Operationen, in c++ sind sie unterschiedlich, unten haben Sie nur ein Beispiel für einen c++-Test erhalten))
Woher haben Sie es? Haben Sie die Ergebnisse der Operationen array[++i]=i und array[i++]=i verglichen?
Hier ist ein Rätsel für Sie. Was ist der Unterschied zwischen Postfix- und Präfix-Operationen?
Eine berühmte Frage in einem Vorstellungsgespräch.
Eine dumme, unnötige Frage, die nur verrät, ob der Befragte weiß, was UB ist, und wenig mit dem Thema der Diskussion zu tun hat.
Aleksey Rodionov:
Ich sitze hier und überlege, wie der Code des Präfix-Formulars nützlich sein kann.
Der Compiler hat genug Grips, um die Postfix-Form bei Bedarf zu optimieren.
Woher haben Sie den Input? Haben Sie die Ergebnisse der Operationen array[++i]=i und array[i++]=i verglichen?
Hier ist eine rätselhafte Frage. Was ist der Unterschied zwischen Postfix- und Präfix-Operationen?
was hat array[++i]=i und array[i++]=i damit zu tun, wie kann ich vergleichen, was nicht im Gespräch war...
Wenn es im Rahmen des Disputs einige Änderungen in mql gibt und Sie davon wissen, dann sind Sie als Moderator verpflichtet, die Teilnehmer des Dialogs zu informieren, anstatt zu versuchen, die Syntax-Wissenstests zu machen, das ist definitiv nicht Ihre Aufgabe ...
und zeigen darüber hinaus alle Anweisungen in der mql-Hilfe über den Unterschied zwischen Postfix- und Präfix-Operationen, aber die Tests der vergangenen Jahre zeigen, dass diese Operationen in mql gleichwertig sind
ps. übrigens, ich habe gerade das Beispiel aus dem Dialog überprüft
bauen 1816 Ergebnis == 12
Dies ist eine dumme, unnötige Frage, die nur verrät, ob der Befragte weiß, was UB ist, und wenig mit dem Thema des Gesprächs zu tun hat.
Nun, eigentlich ist die Präfixform schneller.
Außerdem bin ich der Meinung, dass die Verwendung solcher Konstrukte in Ihrem Code einfach inakzeptabel ist.
Erstens wegen der Mehrdeutigkeit der Arbeit in verschiedenen Implementierungen und mehr noch, weil es leicht ist, einen Fehler in einem solchen Code zu machen und nicht so leicht, ihn zu verstehen.
Der Code sollte transparent und auf einen Blick verständlich sein.
Außerdem ist es meiner Meinung nach einfach inakzeptabel, solche Konstrukte im Code zu verwenden.
Erstens wegen der Mehrdeutigkeit der Arbeit an verschiedenen Implementierungen, und noch mehr - weil es leicht ist, einen Fehler in solchen Code zu machen, und nicht leicht zu verstehen.
Der Code sollte transparent und auf einen Blick verständlich sein.
es ist an der Zeit, die mql5-Hilfe in Form von Sprachkonventionen und Regeln zu ändern
Was hat array[++i]=i und array[i++]=i damit zu tun, wie kann ich vergleichen, was in dem Gespräch nicht passiert ist...
Wenn es im Rahmen des Disputs eine Änderung in mql gibt und Sie davon wissen, dann sind Sie als Moderator verpflichtet, dies den Teilnehmern des Dialogs mitzuteilen, anstatt zu versuchen, Tests über die Syntaxkenntnisse durchzuführen, das ist definitiv nicht Ihre Aufgabe...
und zeigen darüber hinaus alle Anweisungen in der mql-Hilfe über den Unterschied zwischen Postfix- und Präfix-Operationen, aber die Tests der vergangenen Jahre zeigen, dass diese Operationen in mql gleichwertig sind
ps. übrigens, ich habe gerade das Beispiel aus dem Dialog überprüft
bauen 1816 Ergebnis == 12
Aber Ihre Beispiele sind rein theoretisch. Sie sind nur für Studenten bestimmt. Kein Programmierer, der bei Verstand ist, würde sie für die Produktion freigeben.
Postfix- und Präfix-Inkrement und -Dekrement werden eigentlich vor allem in Schleifen verwendet. Und die heißen Inkremente und Dekremente!
Hier sind einige Beispiele
и
Wenn Sie behaupten, dass Präfix- und Postfix-Operationen gleich funktionieren, dann schlagen Sie die Fahne in die Hände und trommeln auf den Hals.
Im Falle eines Präfix-Inkrements erhalten Sie bei der letzten Iteration ein nicht initialisiertes Null-Array-Element und einen Array-Out-of-Range-Fehler.
PS. Ich habe beschlossen, unsere Dokumentation zu diesem Thema unter dem grünen Link https://www.mql5.com/ru/docs/basis/operations/mathoperation erneut zu lesen.
Wichtiger Hinweis
int i=5;
int k = i++ + ++i;
Es kann zu Berechnungsproblemen kommen, wenn Sie den obigen Ausdruck von einer Programmierumgebung in eine andere portieren (zum Beispiel von Borland C++ zu MQL5). Im Allgemeinen hängt die Reihenfolge der Berechnungen von der Implementierung des Compilers ab. In der Praxis gibt es zwei Möglichkeiten der Umsetzung von Postdecrement (Postincrement):
In MQL5 implementieren wir derzeit die erste Methode zur Berechnung des Postdecrements (Postincrements). Aber selbst mit diesem Wissen ist es besser, nicht mit diesem Trick zu experimentieren.