Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 162
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
für Strukturen und Klassen, die Zeichenketten oder dynamische Arrays oder Klassenreferenzen enthalten, zeigt sizeof() mit dem Finger auf den Himmel.
und ich kann es verstehen :-)
Der String-Typ in mql ist sehr kompliziert und wird in der Dokumentation nicht vollständig offengelegt.
Aber es kann aus der Sprache C erraten werden, dass char array (buffer) in string type verpackt ist
Und dann fängt man an zu tanzen und zu verstehen, wie es funktioniert ))
Der String-Typ in mql ist sehr kompliziert und wird in der Dokumentation nicht vollständig offengelegt.
Die Sprache C legt jedoch nahe, dass der Stringtyp ein Char-Array (Puffer) ist
Und dann fängt man an zu tanzen und zu verstehen, wie es funktioniert ))
In C gibt es keine Zeichenketten.
für Strukturen und Klassen, die Zeichenketten oder dynamische Arrays oder Klassenreferenzen enthalten, zeigt sizeof() mit dem Finger auf den Himmel.
und ich kann es verstehen :-)
Aber warum?
Bei jedem dynamischen Array wird die Größe des dynamischen Array-Objekts angezeigt, die in MQL5 52 Byte beträgt
In C gibt es keine Tangas.
Ich glaube, das ist bereits der Fall, aber darum geht es nicht.
Ja, C hat char[], es ist in mql String verpackt
Aber warum?
Bei jedem dynamischen Array wird die Größe des dynamischen Array-Objekts angezeigt, die in MQL5 52 Byte beträgt
die Größe von was und für wen wird es zeigen?
52 Bytes sind nur ihr internes Gerät.
Warum es nicht 64 sind, ist unklar, sie könnten sich angeglichen haben :-)
Ich glaube, das ist bereits der Fall, aber darum geht es nicht.
Ja, C hat char[], es ist in mql String verpackt
Nun, das verstehe ich.
Ich verwende überhaupt keine String-Funktionen. Ich konvertiere sie sofort mit der Funktion StringToCharArray in ein Char-Array und arbeite dann mit diesem Array. Ich habe festgestellt, dass dies viel effizienter ist.
Vor allem, wenn es um das Parsing geht.
die Größe von was und für wen wird es zeigen?
52 Bytes ist nur ihre interne Struktur.
Es ist nicht klar, warum es nicht 64 ist, sie hätten es ja auch ausrichten können :-)
Wahrscheinlich handelt es sich um eine Art Struktur mit verschiedenen Typen. Zum Beispiel, 5 ulong und 3 uint. Möglicherweise ist die Zeit für die interne Verarbeitung und die Zeit des letzten Zugriffs vorhanden. ICH WEISS ES NICHT. Wer weiß, was diese Struktur enthalten könnte.
Nun, das ist verständlich.
Ich verwende überhaupt keine String-Funktionen. Ich konvertiere sie sofort mit der Funktion StringToCharArray in ein Char-Array und arbeite dann mit diesem Array. Ich habe festgestellt, dass dies viel effizienter ist.
Höchstwahrscheinlich ist die mql-Zeichenkette short[] oder wchar_t[] oder wchar_t*.
Schließlich sind mql-Strings in Unicode, während utf 2 Bytes lang ist.
Und StringToCharArray konvertiert von short[] nach char[].
Und höchstwahrscheinlich gibt es unter mql string short[]
Schließlich gibt es in mql 2 Bytes in einem String in Unicode.
Und StringToCharArray konvertiert von short[] nach char[]
nein, das hätte ich bemerkt. Obwohl ich nicht ausschließe, dass dies in einigen Fällen (bei der Arbeit mit Unicode) möglich ist. In Java zum Beispiel ist der Typ char 2 Byte groß.
Ich habe versucht, Daten von Crypto-Exchange in zwei Varianten zu parsen: über diese JSON-Bibliothek und über die Arbeit mit Char-Array.
Der Unterschied betrug das 700(!!!)-fache der Geschwindigkeit. Ich war schockiert. Vielleicht war es bei weitem nicht die beste JSON-Implementierung.