Thu, 03 Mar 2005 18:38:15 +0100, Herv� Rouault a �crit :
> Je cherche � utiliser la fonction tgamma() en c. Malgr� les informations
> des manpages debian, le prototype de la fonction n'est pas trouv�
> (contrairement � la fonction lgamma() ) :
> 
> Manpage :
> 
> SYNOPSIS
>         #include <math.h>
> 
>         double tgamma(double x);
> CONFORME �
>         C99.

          ^^^
          L�

>[...]
> R�sultat de la compilation :
> 
> % gcc -Wall test.c -lm
> test.c: Dans la fonction � main �:
> test.c:7: attention : implicit declaration of function `tgamma'

Normal, tgamma est C99, il faut donc faire

gcc -Wall test.c -lm -std=c99

> test.c:7: attention : format double, arg type diff�rent (arg 2)

Ici, c'est le printf : comme tgamma n'est pas connue, elle est consid�r�e
comme renvoyant un int.

> J'esp�re que ma question n'est pas trop hors-sujet.

Si, compl�tement.

> A ce propos, est-ce
> que les headers standard sont communs � toutes les distributions linux?

Comment dire... les ent�tes standard sont... euh... standard ?

Si les versions des biblioth�ques sont les m�mes, les ent�tes sont les
m�mes. De nos jours, on peut m�me dire que peu de fonctions sont ajout�es
ou modifi�es entre deux versions successives (dans leur prototype et leur
comportement visible, la mise en �uvre pouvant varier).

-- 
Sylvain Sauvage

Répondre à