Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 118

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
A proposito di zero, FastLog2 non controlla lo zero, il che gli dà un vantaggio. Ma è ancora 1,5-2 volte più lento di log2 se testato correttamente).
E cosa c'è di sbagliato in questo?
Perché anche la tua versione del test produce:
A proposito di zero, FastLog2 non controlla lo zero, il che gli dà un vantaggio. Ma è ancora 1,5-2 volte più lento di log2, se testato correttamente).
Naturalmente, dovremmo rimuovere il controllo zero da log2 o aggiungere lo stesso a FastLog2.
La domanda riguarda davvero la velocità della parte computazionale. In log2, tutto è calcolato puramente con spostamenti e aggiunte. FastLog2 usa i valori della tabella dopo conversioni intelligenti che coinvolgono la moltiplicazione. Questo codice è molto vecchio, è stato usato ai tempi dei coprocessori matematici, la situazione potrebbe essere cambiata da allora.
Questo è il comportamento standard di MQL5: le variabili statiche vengono dopo le variabili globali.
Si può incasinare molto seriamente a causa di questo.Questo è il comportamento standard di MQL5: le variabili statiche iniziano dopo le variabili globali.
È per questo che ogni variabile statica di una classe/struttura deve essere dichiarata dopo la struttura stessa? E anche senza assegnargli alcun valore... Forse dovremmo suggerire che il compilatore faccia tutto questo automaticamente?
Questo è essenzialmente un bug, una sequenza errata di esecuzione del codice del programma. Il compilatore non dovrebbe permetterlo in linea di principio. Dovresti urlare più spesso agli sviluppatori per questo.
In C++ il codice viene processato dal compilatore rigorosamente dall'alto verso il basso, quindi tutto quello che viene dall'alto è già inizializzato e non si può accedere al codice sottostante. Ecco perché tutto è chiaro. E poiché gli sviluppatori hanno introdotto le loro regole qui, lasciamo che siano loro a fornire il corretto ordine di esecuzione del codice.
In C++, il codice viene processato dal compilatore rigorosamente dall'alto verso il basso, quindi qualsiasi cosa in alto è già inizializzata, e non si può accedere a quella in basso. Ecco perché tutto è chiaro.
C'è meno flessibilità.