Bonjour,
en suivant quelques tuto je suis tombé sur un cas pratique qui consiste à écrire un convertisseur de degrés (fahrenheit->Celsisus) à l'aide d'un fonction stockée dans un fichier source indépendant. Je l'ai résolu de la sorte :
La fonction
Son utilisation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 float farhenheitToCelsius(float fFahr){ return (5.0f/9.0f)*(fFahr-32.0f); }
Tout fonctionne pas de problèmes. En revanche la "correction" utilise une fonction de cette forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 int main() { float fCelcius; float fFahrenheit = 100.0f; fCelcius = farhenheitToCelsius(fFahrenheit); printf("%f F = %f C", fFahrenheit, fCelcius); }
et l'utilise ainsi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int farhenheitToCelsius(float fFahr, float *fCel){ *fCel = (5.0f/9.0f)*(fFahr-32.0f); return 0; }
D'où ma question, pourquoi ne pas utiliser la valeur de retour de la fonction ? Y a t il un intérêt évident à utiliser un pointeur en paramètre pour la valeur de retour qui m'a échappé ? Y a t il des limites de quelques sortes que ce soit avec les valeur de retour de fonction ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 int main(int argc, char *argv[]) { float fCelcius; float fFahrenheit = 100.0f; farhenheitToCelsius(fFahrenheit, &fCelcius); printf("%f F = %f C", fFahrenheit, fCelcius); }
Partager