Le fichier en-tête math.h contient des déclarations de fonctions mathématiques.
La compilation d'un programme faisant appel à ces fonctions doit être effectuée avec l'option -lm afin que l'éditeur de liens puissent résoudre les références externes correspondantes.
Sous UNIX SYSTEM V, la fonction matherr permet de gérer une erreur qui s'est produite lors de l'utilisation d'une fonction mathématique. Le programmeur peut écrire sa propre fonction matherr, laquelle doit respecter la syntaxe suivante :
int matherr(struct exception *exp)
Le type struct exception est défini dans le fichier en-tête math.h comme :
struct exception {
int type;
char *name;
double arg1, arg2, retval;
};
Exemple
#include <stdio.h>
#include <math.h>
main()
{
double x, y;
scanf("%lf", &x);
y = log(x);
printf("%f\n", y);
}
int matherr(struct exception *p)
{
puts("erreur detectee");
printf(" type : %d\n", p->type);
printf(" name : %s\n", p->name);
printf(" arg1 : %f\n", p->arg1);
printf(" arg2 : %f\n", p->arg2);
printf(" valeur retournee : %f\n", p->retval);
p->retval = -1.;
return 0;
}
language=C++,basicstyle=, stringstyle=,showstringspaces=false, keywordstyle= , commentstyle=
numbers=left,numberstyle=,numbersep=5pt,showlines=false,frame=tb