This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig194C40F6ADA7CE85FC019462
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
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() ) :
% gcc -Wall test.c -lm
test.c: Dans la fonction « main »:
test.c:7: attention : implicit declaration of function `tgamma'
test.c:7: attention : format double, arg type différent (arg 2)
J'espère que ma question n'est pas trop hors-sujet. A ce propos, est-ce
que les headers standard sont communs à toutes les distributions linux?
Thu, 03 Mar 2005 18:38:15 +0100, Hervé Rouault a écrit :
Je cherche à utiliser la fonction tgamma() en c. Malgré les informati ons 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É9
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
Thu, 03 Mar 2005 18:38:15 +0100, Hervé Rouault a écrit :
Je cherche à utiliser la fonction tgamma() en c. Malgré les informati ons
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).
Thu, 03 Mar 2005 18:38:15 +0100, Hervé Rouault a écrit :
Je cherche à utiliser la fonction tgamma() en c. Malgré les informati ons 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É9
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).