[Débutant] Valeur de retour de fonction ou pointeur en parametre
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
Code:
1 2 3 4
|
float farhenheitToCelsius(float fFahr){
return (5.0f/9.0f)*(fFahr-32.0f);
} |
Son utilisation
Code:
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);
} |
Tout fonctionne pas de problèmes. En revanche la "correction" utilise une fonction de cette forme
Code:
1 2 3 4 5
|
int farhenheitToCelsius(float fFahr, float *fCel){
*fCel = (5.0f/9.0f)*(fFahr-32.0f);
return 0;
} |
et l'utilise ainsi
Code:
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);
} |
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 ?