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
Was ist mit den normalen Namen, die in den Kommentaren stehen?
Übrigens scheint es einen Fehler im mql-Präprozessor zu geben.
expandiert zu 'i nt ll;' und gibt einen Fehler aus:
'i nt' - undeclared identifier t_t_t.mq4 50 1
Was die Kommentare in der Aufzählung angeht - theoretisch sollten sie bis zum C-Präprozessor zucken. Selbst wenn es also möglich wäre, einen Kommentar einzubauen, wäre es unwahrscheinlich, dass er eine Wirkung hätte. Man sollte die Syntax ändern (z.B. in _cmnt_) und die Aufrufreihenfolge des C-Präprozessors mit dem Präprozessor, der die Kommentare zieht, ändern. Die Aussichten auf solche Reformen sind meines Erachtens unwahrscheinlich ))
Übrigens scheint es einen Fehler im mql-Präprozessor zu geben.
expandiert zu 'i nt ll;' und gibt einen Fehler aus:
Dynamic ENUM ist für den internen Gebrauch, das Einstellungsfenster zeigt diese nicht an. Normale Namen/Kommentare werden nicht wirklich benötigt
Die letzte Methode erforderte das manuelle Schreiben der Leerzeichen für enum und die Funktion, die ein Array von Werten zurückgibt. Ich habe beschlossen, es herauszufinden und es so zu schreiben, dass es nicht mehr benötigt wird. Es kann jedoch nicht in mql kompiliert werden, es gibt keine Makros mit variabler Anzahl von Argumenten, aber theoretisch können sie erscheinen. Wie auch immer, hier ist, was ich habe:
Выхлоп printf:
----enum1-----
1
3
65
90
----enum2-----
100
-3
21
----enum3-----
871
213
226
// Generierter Code für emum1
// enum enum1{
// q = 1,
// e = 3,
// t = 65,
// z = 90,
// };
// unsigned get_enum1_array(int *ar){
// int temp[] = { q, e, t, z, };
// if(ar != NULL)
// for(unsigned i = 0; i < sizeof(temp) / sizeof(int); ++i){
// ar[i] = temp[i]; }
// return sizeof(temp) / sizeof(int);
// }
Artikel zu diesem Thema http://jhnet.co.uk/articles/cpp_magic. Alles in allem natürlich eine Menge Magie. Die Technik kann jedoch für eine breite Palette von Aufgaben im Zusammenhang mit der Erzeugung von Präprozessor-Code nützlich sein.
Ich habe den Thread mit Interesse gelesen, alles sehr cool mit Makros.
Es ist einfach nicht klar, warum wir dieses ganze Tanzen mit enum brauchen. Können Sie ein praktisches Beispiel nennen?
Das mit der TF ist klar, aber was noch?
Es kann jedoch nicht in mql kompiliert werden, es gibt keine Makros mit variabler Anzahl von Argumenten, aber theoretisch können sie erscheinen.
In MQL5 haben Makros nicht nur eine feste Anzahl von Argumenten, sondern ihre Anzahl ist auf 8 begrenzt. Sie können also ein Enum für nur 3 Werte erstellen.
Was das theoretische Aussehen betrifft, wird es wahrscheinlich schneller sein, eine eigene Funktion für das Parsen von Aufzählungen zu entwickeln, da die Entwickler bereits versprochen haben, etwas zu tun.
In MQL5 haben Makros nicht nur eine feste Anzahl von Argumenten, sondern ihre Anzahl ist auf 8 begrenzt. Wir können also ein Enum für nur 3 Werte erstellen.
Was das theoretische Aussehen betrifft, so ist es wahrscheinlich schneller, eine eigene Funktion für das Parsen von Aufzählungen zu entwickeln. Die Entwickler haben bereits versprochen, sich etwas einfallen zu lassen.
Verwenden Sie die zuvor vorgeschlagene Methode der Aufzählung mit Array.
Für die Aufzählung von Aufzählungswerten ist kein Iterator vorgesehen.
Verwenden Sie die zuvor vorgeschlagene Methode der Aufzählung von Werten mit Hilfe eines Arrays.