#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
Cosa fa un compilatore Shell C++ intelligente? Giusto! Dove c'è un evidente errore di stampa e nella linea (1) - manca la "x
A( int x, int y ) :
- genera l'avvertimento: 'A::x' è inizializzato con se stesso. E non mostra nulla in quei posti dove è OK!
E cosa fa il compilatore MQL?
#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
È silenzioso quando ne ha bisogno e c'è un evidente errore di stampa, ma quando non ne ha bisogno e tutto è a posto, avverte: dichiarazione di 'y' nasconde membro
Vedo che l'argomento delle macro è decollato, anch'io ho alcune domande
Perché int e uint sono usati per C e D? Perché long e ulong dovrebbero essere sostituiti per la codifica o forse il compilatore è così intelligente che percepisce la dimensione 280 e la ottimizza?
#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));
}
Vedo che l'argomento delle macro è decollato, anch'io ho alcune domande
Perché int e uint sono usati per C e D? Dove dovrebbero essere sostituiti long e ulong o forse il compilatore è così intelligente che percepisce la dimensione 280 e la ottimizza?
Sì, funziona. Ma il tipo di carattere '+' mostra ushort Fits come una dimensione di stringa di 2 byte
#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));
}
Capito, interpretato in modo diverso qui.
Non è una costante, ma una macro, dopo tutto.
Grazie.Quindi identico in azione a MACRO e MACRO2.
Per l'utente finale, sì, si usa una macro con due parametri
Cosa fa un compilatore Shell C++ intelligente? Giusto! Dove c'è un evidente errore di stampa e nella linea (1) - manca la "x
- genera l'avvertimento: 'A::x' è inizializzato con se stesso. E non mostra nulla in quei posti dove è OK!
E cosa fa il compilatore MQL?
È silenzioso quando ne ha bisogno e c'è un evidente errore di stampa, ma quando non ne ha bisogno e tutto è a posto, avverte: dichiarazione di 'y' nasconde membro
Perché è il contrario?2632
Quando è in pausa nel test visivo, non è possibile sfogliare (riavvolgere/avanzare) il grafico usando il mouse o i tasti freccia.
Vedo che l'argomento delle macro è decollato, anch'io ho alcune domande
Perché int e uint sono usati per C e D?
Perché long e ulong dovrebbero essere sostituiti per la codifica
o forse il compilatore è così intelligente che percepisce la dimensione 280 e la ottimizza?
La seconda domanda.
Perché c'è un errore di compilazione per float?
La terza domanda.
Vedo che l'argomento delle macro è decollato, anch'io ho alcune domande
Perché int e uint sono usati per C e D?
Dove dovrebbero essere sostituiti long e ulong
o forse il compilatore è così intelligente che percepisce la dimensione 280 e la ottimizza?
La seconda domanda.
Perché c'è un errore di compilazione per float?
La terza domanda.
1. L è lungo, ma c++. Prova LL.
Sì, funziona.
Ma il tipo di carattere '+' mostra ushort
Fits come una dimensione di stringa di 2 byte
Sì, ha funzionato.
Ma il tipo di carattere '+' mostra ushort
Lo imposta come una dimensione di stringa di 2 byte
Perché dovrebbe farlo?
Si tratta di un bug o di una cimice o di qualcosa del genere?
Perché è così?
È un bug o una caratteristica?
Non lo so.
Forse è l'Unicode?
Chi lo sa.
Forse è l'Unicode?