Zur Frage nach nützlichen und schädlichen Warnungen:
#ifdef __cplusplus
class A {
A( int , int y ) : //(1)
x( x ), //(2)warning: 'A::x' is initialized with itself
y( y ) //(3)
{}
int x, y;
};
#endif
Was macht ein Smart Shell C++ Compiler? Genau! Offensichtlicher Druckfehler und in Zeile (1) - fehlendes "x
A( int x, int y ) :
- erzeugt es die Warnung: 'A::x' ist mit sich selbst initialisiert. Und an den Stellen, an denen es OK ist, wird nichts angezeigt!
Und was macht der MQL-Compiler?
#ifdef __MQL__class A {
A( int , int y ) : //(1) warning: declaration of 'y' hides member
x( x ), //(2) нормально
y( y ) //(3)
{}
int x, y;
};
#endif
Er ist still, wenn er ihn braucht und es einen offensichtlichen Druckfehler gibt, aber wenn er ihn nicht braucht und alles in Ordnung ist, warnt er: declaration of 'y' hides member
Wie ich sehe, hat das Thema Makros an Fahrt aufgenommen, ich habe auch einige Fragen
Warum werden int und uint für C und D verwendet? Wo sollten long und ulong ersetzt werden oder ist der Compiler vielleicht so schlau, dass er die 280er Größe erkennt und sie optimiert?
#define A 280// int#define B 280 U // unsigned int#define C 280L// long#define D 280LU// unsigned long#define K 28.0// double//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
Print(typename(A));
Print(typename(B));
Print(typename(C));
Print(typename(D));
Print(typename(K));
}
#define L 28.0 F // float//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
Print(typename(L));
}
Wie ich sehe, hat das Thema Makros an Fahrt aufgenommen, ich habe auch einige Fragen
Warum werden int und uint für C und D verwendet? Wo sollten long und ulong ersetzt werden oder ist der Compiler vielleicht so schlau, dass er die 280er Größe erkennt und sie optimiert?
Vladimir Simakov: 1. L ist lang, aber C++. Versuchen Sie LL.
2. f
3 '\n' ist ein Zeichen.
Ja, es funktioniert. Aber der Zeichentyp '+' zeigt unshort Fits als eine Stringgröße von 2 Bytes
#define A 280// int#define B 280 U // unsigned int#define C 280 LL // long#define D 280 LLU // unsigned long#define E 28.0// double#define F 28.0 f // float#define J '+'// char#define K B'111111111'// int//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+void OnStart()
{
Print(typename(A));
Print(typename(B));
Print(typename(C));
Print(typename(D));
Print(typename(E));
Print(typename(F));
Print(typename(J));
Print(typename(K));
}
Ich habe es verstanden, hier habe ich es anders interpretiert.
Es handelt sich schließlich nicht um eine Konstante, sondern um ein Makro.
Ich danke Ihnen.Die Funktionsweise ist also identisch mit MACRO und MACRO2.
Für den Endbenutzer wird ein Makro mit zwei Parametern verwendet
Was macht ein Smart Shell C++ Compiler? Genau! Offensichtlicher Druckfehler und in Zeile (1) - fehlendes "x
- erzeugt es die Warnung: 'A::x' ist mit sich selbst initialisiert. Und an den Stellen, an denen es OK ist, wird nichts angezeigt!
Und was macht der MQL-Compiler?
Er ist still, wenn er ihn braucht und es einen offensichtlichen Druckfehler gibt, aber wenn er ihn nicht braucht und alles in Ordnung ist, warnt er: declaration of 'y' hides member
Warum ist es andersherum?2632
Wenn der visuelle Test pausiert, ist es nicht möglich, das Diagramm mit der Maus oder den Pfeiltasten zu durchsuchen (zurück- oder vorzuspulen).
Wie ich sehe, hat das Thema Makros an Fahrt aufgenommen, ich habe auch einige Fragen
Warum werden int und uint für C und D verwendet?
Wo sollten long und ulong ersetzt werden
oder ist der Compiler vielleicht so schlau, dass er die 280er Größe erkennt und sie optimiert?
Die zweite Frage.
Warum gibt es einen Kompilierungsfehler für float?
Die dritte Frage.
Wie ich sehe, hat das Thema Makros an Fahrt aufgenommen, ich habe auch einige Fragen
Warum werden int und uint für C und D verwendet?
Wo sollten long und ulong ersetzt werden
oder ist der Compiler vielleicht so schlau, dass er die 280er Größe erkennt und sie optimiert?
Die zweite Frage.
Warum gibt es einen Kompilierungsfehler für float?
Die dritte Frage.
1. L ist lang, aber C++. Versuchen Sie LL.
Ja, es funktioniert.
Aber der Zeichentyp '+' zeigt unshort
Fits als eine Stringgröße von 2 Bytes
Ja, es hat funktioniert.
Aber der Zeichentyp '+' zeigt unshort
Er setzt es als eine Stringgröße von 2 Bytes
Warum sollte sie das tun?
Ist es ein Fehler oder ein Bug oder etwas anderes?
Warum ist das so?
Ist es ein Fehler oder eine Funktion?
Ich weiß es nicht.
Vielleicht liegt es am Unicode?
Wer weiß.
Vielleicht liegt es am Unicode?