Erreurs, bugs, questions - page 2762
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Vous allez rire, mais même cela fonctionne sans avertissement.
vous allez rire aussi, mais c'est le chemin vers l'UB et le moyen d'obtenir le bug délicat sur les prochaines constructions :-)
int foo=-1;
uchar bar=(uchar)foo; // чему должен быть равен bar ?
vérifié :
OK, fonctionne sans aucun avertissement du compilateur
Merci
Pourquoi l'appel ArrayInitialize est-il nécessaire dans ce cas ? Pourquoi ne pas simplement écrire uchar uc[16] = {0xFF} ; ?
ArrayInitialize a du sens pour les tableaux distribués dynamiquement, alors qu'ici la taille est censée être connue au moment de la description.
Vous allez rire, mais même cela fonctionne sans aucun avertissement.
ce n'est pas drôle, ce n'est pas une initialisation correcte, que vous ne comprenez peut-être pas pourquoi vous avez fait
Il est clair que l'octet le plus significatif sera coupé lors de la conversion en uchar.
Pourquoi ai-je besoin de l'appel ArrayInitialize dans ce cas ? Pourquoi ne pas simplement écrire uchar uc[16] = {0xFF} ; ?
ArrayInitialize a du sens pour les tableaux distribués dynamiquement et ici la taille est supposée être connue au moment de la description.
ne fonctionne pas
Si on le désimprime, le premier élément sera 255 et les autres 0, 0, 0, ...
OK, fonctionne sans aucun avertissement du compilateur
sans fantôme est normalement comme ceci
UPD non, même avertissement, un tel littéral est de type ushortEncore une fois, sur un pied d'égalité...
Une fois de plus sur place...
Je suis totalement confus.)
Il émet un avertissement pour les constantes de 128 et 0xFF, mais pas pour les variables int ayant les mêmes valeurs.
De plus, il ne prévient pas non plus de la constante -1 int. Y a-t-il une logique dans tout cela ?
s.s. Je suppose que c'est compréhensible avec -1, il est réduit à toute valeur non signée par max selon les règles.sans un fantôme comme celui-là.
UPD non, également un avertissement, un tel littéral est de type ushort'\xFF'
? ? wow... en 4 rouleaux (il est ouvert à l'occasion).
void OnStart()
{
ushort foo='\xFF';
}
PS/ quand, à l'occasion, quelqu'un a un site web, donnez-lui une tape sur les doigts.
Pourquoi le résultat du script est-il de 1-2 secondes dans le rapport, mais de plus d'une minute ?
Le script a fonctionné et du début au déchargement, cela prend environ une minute ou plus.
Mais le script s'entête à écrire qu'il a fonctionné pendant 1 à 2 secondes, qu'est-ce qui peut ralentir le PC à ce point ?
2020.06.01 11:34:26.680 Vitesse de test (EURUSD,M15) Démarrage
2020.06.01 11:37:34.067 Vitesse de la Teste (EURUSD,M15)
2020.06.01 11:37:34.067 Vitesse de test (EURUSD,M15) Chemin le plus ancien Total : 1870971ms Sec 1
2020.06.01 11:39:32.283 Vitesse de la Teste (EURUSD,M15)
2020.06.01 11:42:24.664 Vitesse de la Teste (EURUSD,M15)
2020.06.01 11:42:24.664 Vitesse de test (EURUSD,M15) Ancienne méthode Totaux : 1652839ms Sec 1