Errori, bug, domande - pagina 2208
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
La famosa domanda del colloquio di lavoro.
Cosa ci sarà nella i?
Uscite MQL5 12. Uscite MS Visual Studio 13.come sembra funzionare in C++. Ecco perché ho chiesto, ho deciso di leggere C++ per esempio. Stesso valore di uno solo nella differenza. Sembra assegnare 5 a "y" nel secondo caso e poi aggiungerlo, mentre nel primo esempio prima aggiunge e poi assegna (mi ci è voluto molto tempo per capire come funziona =D )
In mql5 sono operazioni uguali, in c++ sono diverse, sotto hai solo un esempio di un test su c++ ))
La famosa domanda del colloquio di lavoro.
Cosa ci sarà nella i?
MQL5 dà 12. MS Visual Studio dà 13.Non definito a causa dell'effetto collaterale. In questo caso, un triplo effetto complessivo. Diverse ottimizzazioni possono calcolare i valori delle variabili in modo diverso. Per il bene dell'ottimizzazione.
In mql5 sono operazioni equivalenti, in c++ sono diverse, sotto ti è stato dato solo un esempio di test su c++ ))
Da dove l'hai preso? Hai confrontato i risultati delle operazioni array[++i]=i e array[i++]=i?
Ecco un puzzle per voi. Qual è la differenza tra l'operazione postfix e l'operazione prefix?
Una famosa domanda in un colloquio di lavoro.
Una domanda stupida e inutile che rivela solo se l'intervistato sa cosa sia UB e ha poco a che fare con l'argomento della discussione.
Aleksey Rodionov:
Sono seduto qui a pensare: come può essere utile il codice di forma del prefisso?
Il compilatore ha abbastanza cervello per ottimizzare la forma postfix quando necessario.
Da dove avete preso l'input? Avete confrontato i risultati delle operazioni array[++i]=i e array[i++]=i?
Ecco una domanda sconcertante. Qual è la differenza tra l'operazione postfix e l'operazione prefix?
cosa c'entra array[++i]=i e array[i++]=i, come posso confrontare ciò che non è stato nella conversazione...
Se ci sono dei cambiamenti in mql nell'ambito di questa disputa e tu ne sei a conoscenza, allora tu come moderatore hai l'obbligo di informare i partecipanti a questo dialogo, invece di cercare di fare i test di conoscenza della sintassi, non è assolutamente tuo dovere...
e inoltre, mostrare tutte le istruzioni nell'aiuto di mql sulla differenza nelle operazioni postfix e prefix, ma i test degli anni precedenti mostrano che queste operazioni erano equivalenti in mql
ps. a proposito, ho appena controllato l'esempio del dialogo
costruire 1816 risultato == 12
Questa è una domanda stupida e inutile, che rivela solo se l'intervistato sa cosa sia UB e ha poco a che fare con l'argomento della discussione.
Beh, in realtà la forma del prefisso è più veloce.
Inoltre, credo che usare tali costrutti nel vostro codice sia semplicemente inaccettabile.
In primo luogo, a causa dell'ambiguità del lavoro in diverse implementazioni e, ancora di più, perché è facile fare un errore in tale codice e non così facile dargli un senso.
Il codice dovrebbe essere trasparente e comprensibile a colpo d'occhio.
Inoltre, a mio parere, è semplicemente inaccettabile usare tali costrutti nel codice.
In primo luogo, a causa dell'ambiguità del lavoro su diverse implementazioni, e ancora di più - perché è facile fare un errore in tale codice, e non è facile da capire.
Il codice dovrebbe essere trasparente e comprensibile a colpo d'occhio.
è ora di cambiare l'aiuto di mql5 in forma di convenzioni e regole del linguaggio
Cosa c'entra array[++i]=i e array[i++]=i, come posso confrontare ciò che non è successo nella conversazione...
Se ci sono dei cambiamenti in mql nell'ambito della controversia e tu ne sei a conoscenza, allora come moderatore hai l'obbligo di portarlo ai partecipanti al dialogo, invece di cercare di condurre test di conoscenza della sintassi, non è assolutamente tuo dovere...
e inoltre, mostra tutte le istruzioni nell'aiuto di mql sulla differenza nelle operazioni postfix e prefix, ma i test degli anni precedenti mostrano che queste operazioni erano equivalenti in mql
ps. a proposito, ho appena controllato l'esempio del dialogo
costruire 1816 risultato == 12
Ma i suoi esempi sono puramente teorici. Sono destinati solo agli studenti. Nessun programmatore sano di mente li metterebbe in produzione.
L'incremento e il decremento dei prefissi e dei postfissi sono in realtà utilizzati prima di tutto nei cicli. E si chiamano incrementi e decrementi!
Ecco alcuni esempi
и
Se sostenete che le operazioni di prefisso e postfisso funzionano allo stesso modo, allora bandiera in mano e tamburo sul collo.
In caso di incremento del prefisso, otterrete un elemento di array nullo non inizializzato e un errore di array fuori portata all'ultima iterazione.
PS. Ho deciso di rileggere la nostra documentazione su questo argomento nel link verde https://www.mql5.com/ru/docs/basis/operations/mathoperation
Nota importante
int i=5;
int k = i++ + ++i;
Si possono avere problemi di calcolo quando si porta l'espressione di cui sopra da un ambiente di programmazione a un altro (per esempio, da Borland C++ a MQL5). In generale, l'ordine dei calcoli dipende dall'implementazione del compilatore. In pratica, ci sono due modi di implementare il postdecremento (postincremento):
In MQL5 attualmente implementiamo il primo metodo di calcolo del postdecremento (postincremento). Ma anche con questa conoscenza, è meglio non sperimentare l'uso di questo trucco.