Existe-t-il un moyen d'utiliser successivement chacun des arguments de cette fonction sans dupliquer le code? Par exemple, la première fois que j'utilise la boucle, je souhaite utiliser R, la prochaine fois que j'utiliserai L, etc. valuestruct est configuré dans le même ordre que les arguments, donc la méthode du bouton retournera l'équivalent. bool j'ai besoin de currentbutton selon int i. S'il y a une meilleure méthode pour accomplir la même chose, c'est bien aussi.Utilisation de nombreux arguments sans code de duplication
int valuex=0;
void SetValue(bool &R,bool &L,bool &D,bool &U,bool &T,bool &S,bool &B,bool &A,bool &Y,bool &X,bool &W,bool &E,bool &G, bool &F) {
bool value[4] = {true, false, true, false};
bool currentbutton;
for (int i=0; i < 12; i++) {
currentbutton=valuestruct.button(i);
if(currentbutton) {
"I want to grab each argument in sequence here"=value[valuex];
valuex++;
if(valuex>ARRAYSIZE(value))
valuex=0;
}
}
}
Pourquoi cela a-t-il été déprécié? Très probablement, il va aussi fonctionner avec des arguments fixes - ils sont situés dans la pile de la même manière que les arguments variables. – qrdl
Les macros C varargs et les références C++ ne se mélangent pas. "warning: ne peut pas recevoir d'objets de type non-POD 'bool &' à '...'; call va s'interrompre au moment de l'exécution" –
A obtenu, n'a pas remarqué les références C++. Pour C pur, cela devrait fonctionner. – qrdl