Caractéristiques du langage mql5, subtilités et techniques - page 202
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
Les fonctions standard reçoivent les arguments de gauche à droite.
Les fonctions personnalisées reçoivent les arguments de droite à gauche.
Résultat.
Est-ce que c'est comme ça que ça doit être ?
C'est comme ça que ça doit être ?
Il s'agit d'un BPU auquel on ne peut pas se fier. C'est-à-dire qu'il faut explicitement éviter les situations où la logique d'un programme dépend de l'ordre dans lequel les arguments sont évalués.
Les fonctions régulières reçoivent les arguments de gauche à droite.
Voici un exemple de réfutation :
Résultat : 2 1
Il s'agit d'un BPU auquel on ne peut pas se fier. C'est-à-dire que nous devons explicitement éviter les situations où la logique d'un programme dépend de l'ordre dans lequel les arguments sont évalués.
Voici un exemple de réfutation :
Il s'avère que tout est instable avec les personnalisés. Avec les personnalisés, tout est instable dès le départ.
Il s'avère que tout est instable avec les standards. Avec les modèles personnalisés, c'est sans ambiguïté dès le départ.
La différence est qu'il existe des fonctions régulières (de droite à gauche) et des fonctions en ligne (ordre indéfini).
les fonctions inline ne sont pas des fonctions du tout, c'est-à-dire qu'elles ne peuvent pas avoir d'adresse. De ce point de vue, il n'y a pas de différence entre les fonctions ordinaires et les fonctions personnalisées. Par exemple, on ne comprend pas pourquoi les arguments de la fonction personnalisée la plus simple (qui est par essence inline) sont toujours calculés de droite à gauche. Je n'exclus pas qu'à l'avenir pour les fonctions en ligne l'ordre puisse changer, donc
J'ai suggéré à un moment donné d'introduire un mot-clé en ligne pour une utilisation sûre de l'ordre des calculs :
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading
Erreurs, bugs, questions
A100, 2017.10.05 14:30
Cela démontre une fois de plus l'utilité du mot-clé C++ inline (il y avait ici une opinion selon laquelle il était soi-disant obsolète).
Entre autres choses, inline signifie en fait que le programmeur n'utilise pas l'ordre de calcul des paramètres de la fonction et si le compilateur décide de rendre la fonction inline, alors le compilateur peut utiliser l'ordre de calcul avant comme plus efficace (l'ordre de calcul inverse n'est évidemment efficace que pour les fonctions appelées).
En même temps, si le compilateur décide d'intégrer une fonction non inline, il doit utiliser l'ordre d'évaluation inverse (général), même si cela entraîne une perte d'efficacité (parce que le programmeur a supposé cet ordre sans avoir déclaré la fonction inline).
inline serait également approprié en MQL, où l'ordre de calcul ne peut pas être contrôlé explicitement
La différence est qu'il existe des fonctions normales (de droite à gauche) et des fonctions en ligne (ordre indéfini).
Les fonctions en ligne ne sont pas des fonctions du tout, c'est-à-dire qu'elles ne peuvent pas avoir d'adresse. De ce point de vue, il n'y a pas de différence entre les fonctions ordinaires et les fonctions personnalisées. Par exemple, on ne comprend pas pourquoi les arguments de la fonction personnalisée la plus simple (qui est par essence inline) sont toujours calculés de droite à gauche. Je n'exclus pas qu'à l'avenir pour les fonctions en ligne l'ordre puisse changer, donc
J'ai suggéré à un moment donné d'introduire le mot clé inline pour une utilisation sûre de l'ordre de calcul :
Merci pour la précision, je n'avais pas pensé à l'inline.
Cette option n'a aucun effet sur le résultat.
Merci pour la précision, je n'avais pas pensé à l'inline.
Cette option n'affecte pas le résultat.
Elle n'a aucun effet maintenant, car elle n'existe pas dans MQL
et à l'avenir, il peut avoir un sens réel, sinon pourquoi l'introduire ?
Il n'a pas d'effet maintenant, parce que dans MQL il est en quelque sorte absent maintenant.
et à l'avenir, il peut avoir un sens réel, sinon pourquoi l'avoir introduit ?
Pour autant que je me souvienne de l'aide de la version, il a été introduit comme un stub pour permettre de mettre en ligne les fichiers *.h.