Auguri per MT5 - pagina 72

 
stringo:

Ne abbiamo già discusso. Abbiamo scoperto che possiamo accontentarci della funzionalità esistente.

Davvero? E di quale funzionalità si può fare a meno, me lo ricordi per favore?
 
Perché le variabili globali sono solo di tipo doppio? E nella 4 è stato un terribile ostacolo, e nella 5 non si capisce perché no, in particolare le variabili di stringa.
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 

TheXpert:
Да ладно? И каким же функционалом можно обойтись, напомните, пожалуйста?

Te l'ho detto. Disponibile.

Per esempio, abbiamo i file header inclusi una volta. Non c'è bisogno di #ifdef.

Invece di macrosostituire delle costanti a seconda di una condizione, possiamo usare delle variabili che sono inizializzate in modo diverso nelle diverse condizioni.

Anche in questo caso, le condizioni possono essere definite da variabili costanti invece che da definizioni predefinite.

Presenza della costante IS_DEBUG_MODE

Capacità di determinare al volo in quale ambiente opera il programma (test, debugging, test visivo, ottimizzazione, permettendo di utilizzare la dll).

 
marketeer:
Perché le variabili globali sono solo di tipo doppio? Entrambi in 4 hanno interferito terribilmente e in 5 non è chiaro perché no, in particolare le variabili di stringa.

Questa è la dimensione massima dei dati numerici. Potete mettere fino a 8 byte di informazioni in una variabile globale, che potete interpretare come lunga, come 2 ints o come 64 bit.

Perché le variabili globali non possono essere di tipo stringa, per la stessa ragione per cui le variabili globali non possono essere array - per non complicare inutilmente

 
stringo:

Perché le variabili globali non possono essere di tipo stringa, per la stessa ragione per cui le variabili globali non possono essere array - per non complicare le cose inutilmente

Slava, il pubblico difficilmente sarà d'accordo con te in questo caso - questa complicazione non sarebbe inutile. Volete fare una votazione?
 
MetaDriver:
Slava, il pubblico difficilmente sarebbe d'accordo con te in questo caso - questa complicazione non sarebbe inutile. Volete fare una votazione?

"Sovraccomplicare" in questo contesto significa aggiungere nuove funzionalità lente per un piccolo numero di utenti. Ora è stato implementato un meccanismo di memorizzazione e accesso molto efficiente, e non vogliamo distruggerlo.

Per scambiare dati tra programmi (e anche tra terminali client sullo stesso computer) si possono usare dei file. È sufficiente scrivere una volta un paio di classi standard.

A proposito, sulle variabili globali delle stringhe. Vi servono per lo scambio di dati tra programmi all'interno di un terminale client? Allora perché non passare le stringhe direttamente, tramite gli eventi utente? È un metodo molto più efficiente dello scambio di dati tramite variabili globali.

 
stringo:

Questa è la dimensione massima dei dati numerici. Potete mettere fino a 8 byte di informazioni in una variabile globale, che potete interpretare come lunga, come 2 ints o come 64 bit.

Perché le variabili globali non possono essere stringhe, per la stessa ragione per cui le variabili globali non possono essere array - per non complicare inutilmente le cose

Conoscete il ragionamento familiare: rendete la vita più facile per voi e più difficile per gli utenti, anche se il programma sembra essere scritto per la loro lunghezza. Non c'è nessuna complicazione particolare in termini di implementazione per voi, ma cercare di "interpretare" questo doppio come volete per mancanza di altro - questa è una complicazione per un richiedente, se non dire più forte. Mentre dovete emulare variabili globali di altri tipi con mezzi improvvisati - quello che una volta potevate fare nel sistema, gli sviluppatori di applicazioni lo fanno al loro posto.
 
stringo:

A proposito, riguardo alle variabili globali delle stringhe. Vi servono per scambiare dati stringa tra programmi all'interno di un terminale client, giusto? Allora perché non passare le stringhe direttamente, tramite gli eventi utente? È un metodo molto più efficiente dello scambio di dati tramite variabili globali.

Sono cose completamente diverse. Lo stato deve essere memorizzato e accessibile, mentre i messaggi sono un mezzo per cambiare gli stati.
 
marketeer:
Un ragionamento familiare: rendi la vita più facile per te e più difficile per gli utenti, anche se il programma sembra essere scritto per loro. Non c'è nessuna complicazione particolare in termini di implementazione per voi, ma cercare di "interpretare" questo doppio in qualsiasi modo, per mancanza di altro - questa è una complicazione per l'utente, se non dire più forte. Mentre dovete emulare variabili globali di altri tipi con mezzi improvvisati - quello che una volta potevate fare nel sistema, gli sviluppatori di applicazioni lo fanno al loro posto.

Perché emulare qualcosa? Si può memorizzare qualsiasi tipo di dati negli 8 byte di una variabile globale, tranne le stringhe. Se si tratta di dati di tipo doppio, si usa direttamente il valore risultante. Se si tratta di dati di un altro tipo, allora avete bisogno di un' ulteriore operazione di copia di strutture semplici per ottenere i dati del tipo giusto.

 
stringo:

Perché emulare qualcosa? Si può memorizzare qualsiasi tipo di dati negli 8 byte di una variabile globale, tranne le stringhe. Se si tratta di dati di tipo doppio, si usa direttamente il valore risultante. Se è di un altro tipo, avete bisogno di un' ulteriore operazione di copia di strutture semplici per ottenere i dati del tipo giusto.

Ero principalmente interessato alle corde.
Motivazione: