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 : 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);
}
Son utilisation
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);
}
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
 
int farhenheitToCelsius(float fFahr, float *fCel){
	*fCel = (5.0f/9.0f)*(fFahr-32.0f);
	return 0;
}
et l'utilise ainsi
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);
}
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 ?