Errori, bug, domande - pagina 2479

 
Durante la compilazione di questo sprint
void Func() { return(true); }

void OnStart()
{
  if (Func())
    ;
}


questo registro.

'if' - expression of 'void' type is illegal     Test8.mq5       5       3
empty controlled statement found        Test8.mq5       6       5
'return' - 'void' function returns a value      Test8.mq5       1       15
2 error(s), 1 warning(s)                3       2


Evidenziati due errori. È normale che non vadano dall'alto verso il basso nella fonte?

 
fxsaber:
Durante la compilazione di questo sprint.


questo registro.


Evidenziati due errori. È normale che non vadano dall'alto verso il basso nel codice sorgente?

Una funzione nulla può restituire un valore?

void Func() { return(true); }
 
Alexey Viktorov:

Una funzione nulla può restituire un valore?

L'errore è stato fatto appositamente per l'esempio. Stavo chiedendo qualcos'altro.

 
fxsaber:

Evidenziati due errori. È normale che non vadano dall'alto in basso nel codice sorgente?

Beh, si può descrivere qualsiasi funzione all'inizio del codice MQL, così come alla fine. La compilazione sarà ancora costruita secondo la logica del produttore del compilatore e solo lo sviluppatore sa cosa ci costruisce e in quale sequenza.

Il web è pieno di articoli sui compilatori, su come costruiscono le tabelle di collegamento e su come...

Questo è un compilatore, non un interprete, giusto? - All'interprete è come un'esecuzione dall'alto verso il basso di comandi o la lettura del sorgente da parte di una macchina


PS: puoi controllare che il compilatore non includa tutto nel byte-code, scrivi un codice di prova, compilalo, vedi la dimensione di .ex5 poi aggiungi in qualsiasi posto (in alto o in basso) un sacco di funzioni diverse e non chiamarle - la dimensione di ex5 non dovrebbe cambiare, non sono state incluse in ex5

 
Igor Makanu:

Beh, si può descrivere qualsiasi funzione all'inizio del codice MQL così come alla fine. La compilazione sarà ancora costruita secondo la logica del compilatore, cosa ci costruisce e in quale sequenza - solo lo sviluppatore lo sa, apparentemente il main() è costruito per primo, tutte le chiamate di funzione da main() sono seguite dalla compilazione delle funzioni e poi tutto ciò che rimane.

Il web è pieno di articoli sui compilatori, su come costruiscono le tabelle di collegamento e su come...

Questo è un compilatore, non un interprete, giusto? - All'interprete è come un'esecuzione dall'alto verso il basso di comandi o la lettura del sorgente da parte di una macchina


PS: potete controllare che il compilatore non includa tutto nel byte-code, scrivete un codice di prova, compilatelo, vedete la dimensione di .ex5 poi aggiungete in qualsiasi posto (in alto o in basso) molte funzioni diverse e non chiamatele - la dimensione di ex5 non dovrebbe cambiare, non sono state incluse in ex5

In ogni errore c'è una voce sul numero di riga e colonna. Non importa in che forma tutto sia all'interno del compilatore. Sembra che abbia sempre ordinato gli errori in base al numero di riga specificato.

 
fxsaber:

Sembra che abbia sempre ordinato gli errori per numero di linea.

Non ho mai prestato attenzione, ho sempre cliccato dove c'era l'errore, non sembrava avere importanza

 
Perché la connessione con MQ-Demo viene persa mentre MQ sta mettendo fuori una nuova beta?
 
fxsaber:
Perché la connessione a MQ-Demo viene persa mentre MQ sta mettendo fuori una nuova beta?
Ma è possibile testare la perdita di connessione al server. È anche molto buono che il trading - la sua risoluzione lato server - è spesso disattivato/attivato. Buono anche per i test. Vorrei anche che alcuni parametri dell'account fossero cambiati avanti e indietro - sarebbe ottimo per i test. Per esempio, la leva, i livelli di margin call e di stop out, ecc.
 
Artyom Trishkin:
Ma è possibile testare la perdita di connessione al server. È anche molto buono che il trading - la sua risoluzione lato server - è spesso disattivato/attivato. Adatto anche per i test. Vorrei anche che alcuni parametri dell'account fossero cambiati avanti e indietro - sarebbe ottimo per i test. Per esempio, la leva finanziaria, i livelli di margin call e di stop-out, ecc.

Riuscite a immaginare quanto moccio ci sarebbe da parte di coloro che non hanno bisogno di testarlo? Non lo capiranno.

 
Artyom Trishkin:
Ma è possibile testare la perdita di comunicazione con il server. È anche molto buono che il trading - la sua risoluzione lato server - è spesso off/on. Adatto anche per i test. Vorrei anche che alcuni parametri dell'account fossero cambiati avanti e indietro - sarebbe ottimo per i test. Per esempio, la leva, i livelli di margin call e di stop out, ecc.

Tutto questo può essere fatto tramite il tester personalizzato.

Motivazione: