Errori, bug, domande - pagina 1003
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
ts==vero e ts!=NULL sono espressioni completamente diverse.
Inoltre
ts==vero e ts!=falso sono anche espressioni diverse
Sapete come sono diversi? Non solo nella sintassi, ma anche nella semantica.
Solo che il punto della domanda era che ts è un array. E perché questo if(ts) si compila e i precedenti no.
L'espressione if(ts) significa che l'oggetto array ts esiste effettivamente. Ho tirato in ballo specificamente la semantica.
Volete proibire la compilazione di questo caso o basterà un avvertimento? (A proposito, ci deve essere un avvertimento. Se non c'è un avvertimento, è colpa nostra, qualcosa si è rotto)
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Bug, bug, domande
stringo, 2013.06.17 06:35
L'espressione If(ts) significa che l'oggetto array ts esiste effettivamente. Ho menzionato specificamente la semantica.
Volete proibire la compilazione di questo caso o è sufficiente un avvertimento? (A proposito, dovrebbe esserci un avvertimento. Se non c'è un avvertimento, è colpa nostra, qualcosa è rotto)
void OnInit()
{
ts[0]=0;ts[1]=1;
if(ts)Print("ts[0]=0");
ts[0]=1;
if(ts)Print("ts[0]=1");
}
void OnTick()
{
}
ServiceDesk non riconosce l'errore, riferendosi al fatto che gli identificatori non possono iniziare con un numero.
Ma 5Test non è un identificatore, è un nome di file. E i nomi dei file possono iniziare con una cifra e non sono state imposte restrizioni sui nomi dei file #import .ex5
ServiceDesk non riconosce l'errore, riferendosi al fatto che gli identificatori non possono iniziare con un numero.
Ma 5Test non è un identificatore, è un nome di file. E i nomi dei file possono iniziare con una cifra e non sono state imposte restrizioni sui nomi dei file #import .ex5
5Test::A è un identificatore.
E 5Test è riconosciuto come nome di un file, purché questo nome sia racchiuso tra virgolette nella frase di importazione (a proposito, hai scritto anche "5Test.ex5").
Ecco perché i compilatori C/C++ aggiungono automaticamente un carattere di sottolineatura (_) alla rappresentazione interna del nome della funzione in un file/modulo, in modo che il nome risultante "_5TestA" non inizi con un numero, il che assicura la compatibilità
Come è venuto fuori, così è venuto fuori. Devi solo accettarlo.
Questo è un posto pericoloso da modificare - il comportamento del compilatore può cambiare così tanto che nessuno sarà contento.
Questo è un posto pericoloso da modificare - il comportamento del compilatore può essere cambiato così tanto che nessuno sarà contento.
Sono d'accordo.
Date un'occhiata a questo esempio:
Il compilatore C/C++ ha abbastanza cervello per distinguere la variabile aX dalla macro parametrica aX( X ).
Le macro parametriche sono l'unica alternativa in assenza di funzioni in linea e i nomi possono spesso sovrapporsi in un codice lungo
D'accordo.
Date un'occhiata a questo esempio:
Il compilatore C/C++ in una situazione simile ha l'arguzia di distinguere la variabile aX dalla macro parametrica aX( X )Certo, ho appena pubblicato degli esempi l'altro giorno:
Grazie! L'ho capito con il tuo aiuto.