« Programmation C/Mathématiques » : différence entre les versions

Aller à la navigation Aller à la recherche
(intro) simplification et renvoi au chapitre de gestion d'erreur
(-lm -> GCC)
((intro) simplification et renvoi au chapitre de gestion d'erreur)
<noinclude>{{Programmation C}}
</noinclude>
Pour pouvoir utiliser les fonctions mathématiques, il faut non seulement utiliser le fichier dl'entêtesen-tête ''math'', ainsi que ''errno.h''. Cepour dernier contientgérer les codes d'erreurs retournés via la variable globale ''errno'' lorsqu'un des arguments passés est invalide :
<pre>
#include <math.h>
</pre>
 
Comme pour un certain nombre de fonctions de la biliothèques standard, il est en effet nécessaire d'utiliser <tt>errno</tt> pour détecter l'erreur d'une fonction mathématique (voir le chapitre sur la gestion d'erreurs pour voir comment utiliser <tt>errno</tt>).
La gestion portable des erreurs est encore un grief à porter au casier déjà bien lourd du langage C. Dans le cas où la détection d'erreur est critique, voici la marche à suivre pour détecter qu'une fonction mathématique a échoué :
# Positionner la variable <code>errno</code> à 0.
# Appeler la fonction mathématique.
# Vérifier que <code>errno</code> vaut toujours 0.
 
En effet, dans la plupart des cas, ces fonctions ne positionnent cette variable qu'en cas d'erreur, laissant la valeur inchangée en cas de succès. Il faut donc s'assurer qu'une valeur différente de 0, est bien le résultat du dernier appel et non d'un autre antérieur. La pénibilité est surtout dû au fait que les fonctions mathématiques ne renvoient pas de code d'erreur, contrairement à la plupart des autres fonctions utilisant aussi ''errno'', ce qui oblige à positionner explicitement sa valeur avant l'appel. Cela dit, rares sont les cas où on a besoin d'une attitude aussi paranoïaque.
 
'''Note :'''
Utilisateur anonyme

Menu de navigation