vérifier le passage des paramètres par référence :
int res1 func(int& res2, autres paramètres...)
non,
int x ;
int y=func(x, autres paramètres) ;
après appel x=5 et y=2 ;
int res1 func(int& res2, autres paramètres...)
{
res2=5
retour(3) ;
}
Je veux dire y=3
Il semble toujours qu'il ne renvoie qu'un seul résultat : "3".
return(3) ;
?
Trouvez le passage des paramètres par référence dans l'aide de mql4 :
Généralement, passer par référence signifie que vous passez une variable réelle dans la fonction depuis l'extérieur (en utilisant &) et vous pouvez changer sa valeur à l'intérieur de la fonction et cette variable sera toujours là quand vous reviendrez de l'appel.
Ainsi, la valeur de l'int x est fixée à 0.
à l'intérieur de la fonction vous définissez x=5
quand vous revenez de la fonction, x=5 comme défini par la fonction, vous avez donc donné votre deuxième résultat de la fonction sans retourner 2 résultats.
Les fonctions ne renvoient jamais 2 résultats, seulement un.
OK, merci, irusoh1
Ce qui manque dans l'explication de irusoh1, c'est que les variables doivent être des tableaux. Il est préférable que le retour ne joue pas un rôle dans le remplissage/modification des tableaux mais qu'il les modifie directement si nécessaire.
int Xarray[]; int Yarray[]; void Fun2result(int& Array[], int& Brray[], int pos) { Array[pos] = 2 + pos; Brray[pos] = 5 + pos; } int start() { for(i=Bars-1; i>=0; i--) Fun2result(Xarray, Yarray, i); }
Bonne chance.
n'a pas besoin d'être un tableau
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
J'ai besoin de renvoyer deux résultats à partir d'une seule fonction. Je peux les séparer et créer une fonction pour chaque résultat dont j'ai besoin, mais c'est beaucoup plus de code et cela rend d'autres choses plus compliquées. Est-ce possible avec MT4 ?