Posso fare un brainstorming su una rapida implementazione della traduzione di un array di strutture (lunghezza multipla di sizeof(int)) da e verso un array int[]?
///
Semplicemente dopo aver descritto una struttura, scrivete qualche altra riga con un'unione che include questa struttura e un array.
struct SS{
int a;
double b;
};
union UX{
SS s;
char a[sizeof(S)];
};
E' anche possibile non scrivere dopo ogni struttura, ma fare un template - qualsiasi cosa sia conveniente per voi.
Posso fare un brainstorming su una rapida implementazione della traduzione di un array di strutture (lunghezza multipla di sizeof(int)) da e verso un array int[]?
In generale la soluzione si trova allo stesso link, ma a causa della versatilità c'è un freno. Quindi la molteplicità è una comprensibile condizione aggiuntiva.
MQL5: è stata aggiunta la proprietà pack( integer_value ) per le strutture. Permette di impostare l'allineamento dei campi all'interno della struttura, può essere necessario quando si lavora con la DLL. Per integer_value può avere i valori 1, 2, 4, 8 e 16. Se la proprietà non è definita, l'allineamento predefinito è di 1 byte - pack(1).
Esempio di utilizzo:
//+------------------------------------------------------------------+//| Default packing |//+------------------------------------------------------------------+struct A
{
char a;
int b;
};
//+------------------------------------------------------------------+//| Specified packing |//+------------------------------------------------------------------+struct B pack(4)
{
char a;
int b;
};
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
Print("sizeof(A)=",sizeof(A));
Print("sizeof(B)=",sizeof(B));
}
//+------------------------------------------------------------------+
Uscita:
sizeof(A)=5
sizeof(B)=8
Maggiori informazioni sull'allineamento nelle strutture sono disponibili su MSDN.
Posso fare un brainstorming su una rapida implementazione della traduzione di un array di strutture (lunghezza multipla di sizeof(int)) da e verso un array int[]?
Nel caso generale, la soluzione è nello stesso link, ma a causa dell'universalità ci sono dei freni. Quindi la molteplicità è una comprensibile condizione aggiuntiva.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Ecco un altro compito interessante: fare una funzione di ordinamento di array più veloce del built-in ArraySort.
La dimensione di tutte le strutture è garantita per essere divisa dalla dimensione di tutte le variabili?
Posso fare un brainstorming su una rapida implementazione della traduzione di un array di strutture (lunghezza multipla di sizeof(int)) da e verso un array int[]?
///
Semplicemente dopo aver descritto una struttura, scrivete qualche altra riga con un'unione che include questa struttura e un array.
E' anche possibile non scrivere dopo ogni struttura, ma fare un template - qualsiasi cosa sia conveniente per voi.
La dimensione di tutte le strutture garantite è divisa per la dimensione di tutte le variabili?
Forum sul trading, sistemi di trading automatico e test di strategia
Ottenere il numero di posizioni decimali di qualsiasi numero (non solo le virgolette) bypassando Digits() in MQL4 e MQL5
fxsaber, 2018.12.07 15:12
Posso fare un brainstorming su una rapida implementazione della traduzione di un array di strutture (lunghezza multipla di sizeof(int)) da e verso un array int[]?
In generale la soluzione si trova allo stesso link, ma a causa della versatilità c'è un freno. Quindi la molteplicità è una comprensibile condizione aggiuntiva.
È apparso anche questo.
Forum sul trading, sistemi di trading automatico e test di strategia
Nuova versione di MetaTrader 5 build 1930: Finestra del grafico fluttuante e libreria .Net in MQL5
MetaQuotes Software Corp., 2018.10.25 17:18
Se la proprietà non è definita, l'allineamento predefinito è di 1 byte - pack(1).
Esempio di utilizzo:
Uscita:
Maggiori informazioni sull'allineamento nelle strutture sono disponibili su MSDN.
Semplicemente, dopo aver descritto la struttura, scrivete qualche altra riga con un'unione che include questa struttura e l'array.
Si può anche non scrivere dopo ogni struttura, ma template - qualsiasi cosa sia più conveniente.
Non capisco. Se vuoi partecipare, scrivi la tua variante.
Posso fare un brainstorming su una rapida implementazione della traduzione di un array di strutture (lunghezza multipla di sizeof(int)) da e verso un array int[]?
perché a int? e non a char?
(e sarà più lungo - sarà copiato più velocemente)
Perché Int?
Forum sul trading, sistemi di trading automatico e test di strategia
Ottenere il numero di posizioni decimali di qualsiasi numero (non solo le virgolette) bypassando Digits() in MQL4 e MQL5
fxsaber, 2018.12.07 15:12
L'applicazione pratica è lo scambio veloce di dati attraverso le risorse. La mia variante è troppo generica, quindi è lenta.
A quanto pare il tuo è già più veloce :)
Cercherò di accelerare considerevolmente.
Non capisco. Se vuoi partecipare, scrivi la tua opzione.
L'ho fatto.
Nel caso generale, la soluzione è nello stesso link, ma a causa dell'universalità ci sono dei freni. Quindi la molteplicità è una comprensibile condizione aggiuntiva.
Appare anche questo.
Chi controllerà questa molteplicità?