next up previous contents index
Next: Durée de vie et Up: No Title Previous: Passage par référence

Valeurs de retour multiples

  

Il est souvent contraignant de travailler avec des fonctions qui n'ont, par définition, qu'un seul résultat. On contourne cette contrainte en utilisant des paramètres passés par référence. Par exemple, si l'on demande de calculer les solutions réelles d'une équation du deuxième degré, et le nombre de ces solutions

void trinome(double a, double b, double c, 
             int *nombre, double *x1, double *x2);

un appel à cette fonction aura la forme suivante :

  int n;
  double z1, z2;
  trinome(3.0, -2.6, 0.5, &n, &z1, &z2);

Notons qu'il est indispensable de définir au préalable des variables n, z1 et z2 qui seront affectées d'une valeur lors de l'appel.

On peut aussi combiner une valeur de retour et des paramètres passés par référence ; la fonction trinome pourrait retourner le nombre de solutions réelles et écrire les solutions dans les arguments passés par référence :

int trinome(double a, double b, double c, 
            double *x1, double *x2) {
  int nombre;
  ...
  return nombre;
}

qui serait alors appelée ainsi :

  double z1, z2;
  int n = trinome(3.0, -2,6, 0,5, &z1, &z2);


Jean-Philippe Chancelier
9/29/1998