Exercice : Une autre solution
Nous voulons changer le principe de la fonction power
. Celle-ci fera le calcul et retournera une valeur booléenne précisant que la valeur calculée est valide ou non, et transmettra le cas échéant le résultat dans un troisième paramètre.
Complétez le profil de la fonction.
Le retour de la fonction est bool (ou _Bool en l'absence de l'inclusion de stdbool.h), le type défini depuis la version C99 du langage C. Avant cette version, le retour aurait été int. Le type du résultat est bien sûr un double. Toutefois, pour que celui-ci soit retourné par effet de bord de la fonction, il faut transmettre une adresse (ou référence) à la fonction. Le paramètre est donc un pointeur, d'où la présence de *.
L'appel sera donc de la forme :
/*
définition des valeurs de x et n
*/
double retour ;
if (power(x, n, &retour)) {
// utilisation de retour
}
/* définition des valeurs de x et n */ double retour ; if (power(x, n, &retour)) { // utilisation de retour }
Une autre solution est de provoquer une interruption de l'exécution en cas de données inadéquates. Cette solution fait intervenir des exceptions qu'il est possible de détecter et de traiter.
Cette solution et les mécanismes mis en œuvre ne sont pas traités. Ils sont mentionnés à simple titre d'information.