220Volt: Grazie, sembra che sia il momento di bruciare il libro del bisnonno ))))
Dalla storia: il libro del bisnonno ha specificamente lasciato long=int per la compatibilità del vecchio software.
Una volta abbiamo anche deciso - di lasciare l'"inutile" long come int e introdurre l'inumano int64 (o long int) o di fare "correttamente" usando puro long. Di conseguenza, abbiamo deciso che la procedura corretta è quella di usare long come un intero a 64 bit.
Long non è sempre a 32 bit in altri sistemi. Anche lo stesso compilatore per diverse architetture usa dimensioni diverse. Questo è quello che ha l'Intel C++:
The size of a "long" integer varies between architectures and operating systems.
The Intel Compiler is compatible and inter-operable with Microsoft* Visual C++ on Windows* and with gcc* on Linux* and Mac OS X*. Consequently, the sizes of fundamental types are the same as for these compilers. The size of a long integer in particular depends on the operating system and the targeted architecture as follows:
OS arch size ---------------------------------- Windows IA-32 4 bytes Windows Intel 64 4 bytes Windows IA-64 4 bytes Linux IA-32 4 bytes Linux Intel 64 8 bytes Linux IA-64 8 bytes Mac OS X IA-32 4 bytes
Mac OS X Intel 64 8 bytes
In MQL5 usiamo l'architettura compatibile x64 bit che richiede lo stesso comportamento sia a 32 che a 64 bit. lungo è a 64 bit anche per questo motivo.
Un po' di storia, se vi ricordate: ai tempi di MSDOS, int era a 16 bit e uguale a short nei compilatori a 16 bit. Quando il programmatore è passato alla piattaforma a 32 bit, int è stato esteso a 32 bit ed è diventato uguale a short. Sembra che non ci siano state particolari lamentele. Quando siamo passati a 64 bit, long ha dovuto essere staccato da int. Ed è logico.
in un momento (in un ciclo), i processi cercano di fare quanto segue:
1. No.1 scrivere all'UE e No.2 leggere;
2. Scrivi #1 e #2 nell'UE;
Domanda: quale situazione è in conflitto? Sono più interessato al caso #1, possiamo considerarlo normale o l'accesso deve essere limitato? Ho il sospetto che il 1° caso non sia buono, come sarà il conflitto, valore poco chiaro, o aspettarsi qualcosa di più grave?
Domanda: quale situazione è una situazione di conflitto? Sono più interessato al caso 1, questo può essere considerato normale o l'accesso deve essere limitato? Ho il sospetto che il caso 1 non sia buono, come sarebbe il conflitto, un valore poco chiaro, o dovrei aspettarmi qualcosa di più grave?
Entrambe le situazioni saranno in conflitto, con un valore poco chiaro.
Grazie, sembra che sia il momento di bruciare il libro del bisnonno ))))
Dalla storia: il libro del bisnonno ha specificamente lasciato long=int per la compatibilità del vecchio software.
Una volta abbiamo anche deciso - di lasciare l'"inutile" long come int e introdurre l'inumano int64 (o long int) o di fare "correttamente" usando puro long. Di conseguenza, abbiamo deciso che la procedura corretta è quella di usare long come un intero a 64 bit.
Long non è sempre a 32 bit in altri sistemi. Anche lo stesso compilatore per diverse architetture usa dimensioni diverse. Questo è quello che ha l'Intel C++:
The size of a "long" integer varies between architectures and operating systems.
The Intel Compiler is compatible and inter-operable with Microsoft* Visual C++ on Windows* and
OS arch sizewith gcc* on Linux* and Mac OS X*. Consequently, the sizes of fundamental types are the same as
for these compilers. The size of a long integer in particular depends on the operating system
and the targeted architecture as follows:
----------------------------------
Windows IA-32 4 bytes
Windows Intel 64 4 bytes
Windows IA-64 4 bytes
Linux IA-32 4 bytes
Linux Intel 64 8 bytes
Linux IA-64 8 bytes
Mac OS X IA-32 4 bytes
Mac OS X Intel 64 8 bytes
In MQL5 usiamo l'architettura compatibile x64 bit che richiede lo stesso comportamento sia a 32 che a 64 bit. lungo è a 64 bit anche per questo motivo.
Un po' di storia, se vi ricordate: ai tempi di MSDOS, int era a 16 bit e uguale a short nei compilatori a 16 bit. Quando il programmatore è passato alla piattaforma a 32 bit, int è stato esteso a 32 bit ed è diventato uguale a short. Sembra che non ci siano state particolari lamentele. Quando siamo passati a 64 bit, long ha dovuto essere staccato da int. Ed è logico.
MqlRates tassi[];
Ho bisogno di trovare il valore massimo di rates[].high delle ultime tre barre
Non so come applicareArrayMaximum alla struttura?
MqlRates tassi[];
Ho bisogno di trovare il valore massimo di rates[].high delle ultime tre barre
Non so come applicareArrayMaximum alla struttura?
MqlRates tassi[];
Ho bisogno di trovare il valore massimo di rates[].high delle ultime tre barre
Non so come applicareArrayMaximum alla struttura?
Qualcosa del genere. ArrayMaximum non si applica alla struttura.
Grazie!
cosa significa?
CExpertBase::SetOtherSeries: la modifica delle serie temporali è vietata
cosa potrebbe significare?
Dimmelo per favore.
Dato:
1. No.1 scrivere all'UE e No.2 leggere;
2. Scrivi #1 e #2 nell'UE;
Domanda: quale situazione è in conflitto? Sono più interessato al caso #1, possiamo considerarlo normale o l'accesso deve essere limitato? Ho il sospetto che il 1° caso non sia buono, come sarà il conflitto, valore poco chiaro, o aspettarsi qualcosa di più grave?
CExpertBase::SetOtherSeries: la modifica delle serie temporali è vietata
Cosa significa questo?
220Volt:
Domanda: quale situazione è una situazione di conflitto? Sono più interessato al caso 1, questo può essere considerato normale o l'accesso deve essere limitato? Ho il sospetto che il caso 1 non sia buono, come sarebbe il conflitto, un valore poco chiaro, o dovrei aspettarmi qualcosa di più grave?