fonction hypot ( ) retourne systématiquement 1 !!!!!

fonction hypot ( ) retourne systématiquement 1 !!!!! - C - Programmation

Marsh Posté le 30-04-2006 à 23:59:02    


AU SECOURS  ! ! !  
 
J'utilise la fonction hypot de la libriairie math.h.
Quelque soient les valeurs passées (des doubles) elle me renvoit 1 ....  :fou:  :fou:  
 
Voici le code :
 
....
      double dxb = (double)xb;
      double dyb = (double)yb;
      double toto = hypot(dxb, dyb);
      toto = hypot(6300.0, 3600.0);
                    Ddep = hypot(dxb,dyb);
 ....
 
J'ai xb = 6300 et yb = 3600
dans tous les cas les variables toto et Ddep reçoivent la valeur 1 dans le debugger DDD.
 
JE COMPREND RIEN ..... bouhouhouhou ...  :sweat:  :sweat:


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 30-04-2006 à 23:59:02   

Reply

Marsh Posté le 01-05-2006 à 00:26:02    

jipo a écrit :

J'utilise la fonction hypot de la libriairie math.h.
Quelque soient les valeurs passées (des doubles) elle me renvoit 1 ...


Code non compilable. Poste le code complet compilable mais réduit au minimum qui montre le défaut.
(avec mon code de test, je n'ai pas le problème signalé) :

Ddep = 7256.031973


 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 01-05-2006 à 11:45:14    

Voici un code réduit qui me pose problème :
 

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <time.h>
  4. #include <math.h>
  5. #include <sys/types.h>
  6. #include <unistd.h>
  7. int xb, yb;
  8. double Ddep1, Ddep2;
  9. int main(int argc, char **argv)
  10. {
  11. xb =  6300;
  12. yb =  3600;
  13. double dxb = (double)xb;
  14. double dyb = (double)yb;
  15. Ddep1 = sqrt(dxb*dxb + dyb*dyb);
  16. Ddep2 = hypot(dxb,dyb);
  17. return(0);
  18. }


 
Ddep1 contient la bonne valeur mais Ddep2 contient 1 apres appel de hypot ...
Mon système fedora core 4 serait vérolé ???  :lol:  :lol:


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 01-05-2006 à 11:59:34    

est tu sûr? moi ça fonctionne.
qq remarques:
- hypot() peut s'avérer plus lent sur certains systèmes
- sqrt() est très lente comme fonction, vérifie que tu en a vraiment besoin

Reply

Marsh Posté le 01-05-2006 à 12:02:37    

tu compiles avec des optimisations ?

Reply

Marsh Posté le 01-05-2006 à 12:10:55    

Ci-dessous mon makefile :
 

Code :
  1. CC=gcc
  2. OBJECTS= test_hypot.o
  3. INCDIR= ../inc
  4. ifeq ($(dbg), y)
  5. CFLAGS=-Wall -ansi -g
  6. LDFLAGS=-Wall -ansi -g
  7. EXEC=test_hypot_dbg
  8. else
  9. CFLAGS=-Wall -ansi
  10. LDFLAGS=-Wall -ansi
  11. EXEC=test_hypot
  12. endif
  13. all: $(EXEC)
  14. $(EXEC):$(OBJECTS)
  15. $(CC) -o $(EXEC) $(OBJECTS) $(LDFLAGS) -L/usr/X11R6/lib64 -lXm -lXt -lX11 -lm
  16. test_hypot.o: test_hypot.c
  17. $(CC) -o test_hypot.o -c test_hypot.c $(CFLAGS)
  18. clean:
  19. rm -f $(EXEC) *.o


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 01-05-2006 à 12:12:30    

nargy a écrit :

est tu sûr? moi ça fonctionne.
qq remarques:
- hypot() peut s'avérer plus lent sur certains systèmes
- sqrt() est très lente comme fonction, vérifie que tu en a vraiment besoin


 
Non j'ai pas besoin de sqrt ( )
Je l'ai mis là juste pour test car cet appel est sensé me fournir le meme résultat que hypot, non ?


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 01-05-2006 à 12:17:00    

ce que je voulais dire, c'est que si tu a simplement besoin de comparer deux rayons, tu peut te passer de la racine carrée, puisque lorsque x>0 et y>0:
x=y <=> x²=y²
x>y <=> x²>y²

Reply

Marsh Posté le 01-05-2006 à 12:24:53    

Non en fait il s'agit d'obtenir des distances à partir de coordonnées
 


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 01-05-2006 à 13:19:12    

jipo a écrit :

Voici un code réduit qui me pose problème :
Ddep1 contient la bonne valeur mais Ddep2 contient 1 apres appel de hypot ...


Comment tu la sais ? Tu ne fais pas d'affichage. Chez moi, avec le debugger, c'est OK :  
 
http://mapage.noos.fr/emdel/images/hypot.png
 
Et avec printf() aussi :  

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <time.h>
  4. #include <math.h>
  5. #include <sys/types.h>
  6. #include <unistd.h>
  7. int xb, yb;
  8. double Ddep1, Ddep2;
  9. int main(int argc, char **argv)
  10. {
  11. xb =  6300;
  12. yb =  3600;
  13. double dxb = (double)xb;
  14. double dyb = (double)yb;
  15. Ddep1 = sqrt(dxb*dxb + dyb*dyb);
  16. Ddep2 = hypot(dxb,dyb);
  17. printf ("Ddep1 = %f\n", Ddep1);
  18. printf ("Ddep2 = %f\n", Ddep2);
  19. return(0);
  20. }



Ddep1 = 7256.031973
Ddep2 = 7256.031973



---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 01-05-2006 à 13:19:12   

Reply

Marsh Posté le 01-05-2006 à 15:22:25    

Je vérifie le contenu de la variable Ddep dans DDD. Il m'affiche systématiquement 1.
 
Je vois que tu utilises codeblocks. Est-ce que c'est bien ? On peut debugger via l'ide ? Le debugger mieux ou moins bien que ddd ?
 


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 01-05-2006 à 15:58:55    

jipo a écrit :

Je vérifie le contenu de la variable Ddep dans DDD. Il m'affiche systématiquement 1.
 
Je vois que tu utilises codeblocks. Est-ce que c'est bien ? On peut debugger via l'ide ? Le debugger mieux ou moins bien que ddd ?


J'ai tapé ton code tel quel, comme l'a fait Emmanuel, et chez-moi ça me donne comme pour Emmanuel la bonne valeur.
Au lieu d'utiliser un débuggeur (l'utilises-tu correctement ?) fais donc un simple printf("%f - %f\n", Ddep1, Ddep2) en fin de main...
 
Tu trouveras code::Blocks ici: http://www.codeblocks.org


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 01-05-2006 à 22:08:29    

J'ai fait exactement ce que vous avez demandé :  
J'obtiens :

Code :
  1. [jipo@localhost mdes_pre]$ ./test_hypot
  2. 7256.031973 - 1.000000


 
Voilà. Donc il y a un problème !  [:audi]  [:audi]  Je devrais pas en être fier  [:aztechxx]


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 01-05-2006 à 23:07:08    

jipo a écrit :

J'ai fait exactement ce que vous avez demandé :  
J'obtiens :

Code :
  1. [jipo@localhost mdes_pre]$ ./test_hypot
  2. 7256.031973 - 1.000000


 
Voilà. Donc il y a un problème !  [:audi]  [:audi]  Je devrais pas en être fier  [:aztechxx]


 
Hum, je dirais bien qu'il faut débugger l'interface chaise<->clavier mais ça risque de vexer  :D  
Bon, j'ai pas d'idée sur la cause réelle de l'erreur. La seule chose que je puisse proposer est que tu testes ton pgm sur un autre système (ptet que "hypot" n'est pas implémenté sur Fedora ?)
Une solution pas trop destructrice serait que tu télécharges une version "move" de Linux pour que tu puisses tester rapidement ton pgm sans avoir besoin de tout réinstaller...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 02-05-2006 à 07:45:59    

jipo a écrit :

J'ai fait exactement ce que vous avez demandé :  
J'obtiens :

Code :
  1. [jipo@localhost mdes_pre]$ ./test_hypot
  2. 7256.031973 - 1.000000


 
Voilà. Donc il y a un problème !  [:audi]  [:audi]  Je devrais pas en être fier  [:aztechxx]


ça n'est pas la sortie du programme minimale qu'à donner Emmanuel. Teste le telquel.

Reply

Marsh Posté le 02-05-2006 à 10:41:13    

jipo a écrit :

J'ai fait exactement ce que vous avez demandé :  
J'obtiens :

Code :
  1. [jipo@localhost mdes_pre]$ ./test_hypot
  2. 7256.031973 - 1.000000


 
Voilà. Donc il y a un problème !  [:audi]  [:audi]  Je devrais pas en être fier  [:aztechxx]


 
Je viens de tester sur une Aurox le code (minimal) suivant :


#include <math.h>
#include <stdio.h>
int main()
{
      printf("%f\n", hypot(10.0, 15.0));
}


J'obtiens 18,027756...
 
[:edit:] J'avais oublié les guillemets fermants

Message cité 2 fois
Message édité par Sve@r le 02-05-2006 à 11:01:52

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 02-05-2006 à 10:44:14    

Aussi taudis aussi teuffait ...
 
Et voici la sortie :
Ddep1 = 7256.031973
Ddep2 = 1.000000
 
Pour info : IL S'AGIT D'UNE AUTRE MACHINE : RED HAT AS 4 64bits. Chez moi c'était une fedora core 4 64 bits : dans les deux cas il y a anomalie
 
Des idées. Problème de config ? Mon makefile ? Pas les bonnes libs ?
Je sais plus moi ...


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 02-05-2006 à 10:49:06    

Sve@r a écrit :

Je viens de tester sur une Aurox le code (minimal) suivant :


#include <math.h>
#include <stdio.h>
int main()
{
      printf("%f\n, hypot(10.0, 15.0));
}


J'obtiens 18,027756...


 
Avec l'exemple minimaliste, j'obtiens :
0.000000
 [:alvas]  [:alvas]  [:alvas]  [:alvas]  [:alvas]


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 02-05-2006 à 10:55:49    

Sve@r a écrit :

Je viens de tester sur une Aurox le code (minimal) suivant :


Ne compile pas !

Code :
  1. #include <math.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5.    printf("%f\n", hypot(10.0, 15.0));
  6.    return 0;
  7. }

18.027756


 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-05-2006 à 10:56:08    

Ah une piste ...
Effectivement : des valeurs entre 0 et 1 ...  
 
Et alors y a-t-il un parametrage particulier ? Un paramètre qui serait pas bon qqpart ?


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 02-05-2006 à 11:00:53    

Emmanuel Delahaye a écrit :

Ne compile pas !

Code :
  1. #include <math.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5.    printf("%f\n", hypot(10.0, 15.0));
  6.    return 0;
  7. }

18.027756



 
Implicitement si après correction ... ce qui avait été fait ...  :jap:


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 02-05-2006 à 11:06:28    

jipo a écrit :

Aussi taudis aussi teuffait ...
 
Et voici la sortie :
Ddep1 = 7256.031973
Ddep2 = 1.000000
 
Pour info : IL S'AGIT D'UNE AUTRE MACHINE : RED HAT AS 4 64bits. Chez moi c'était une fedora core 4 64 bits : dans les deux cas il y a anomalie
 
Des idées. Problème de config ? Mon makefile ? Pas les bonnes libs ?


 
Pas besoin de Makefile pour ça
cc -c toto.c
cc -lm toto.o -o toto
 

jipo a écrit :

Je sais plus moi ...


Nous (moi) non plus  :??:  


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 02-05-2006 à 11:10:08    

Idem.  
 
J'ai tout testé de mon côté (Solaris 8), y compris l'inclusion des bibliothèques 64-bits du monsieur (inutile, bien sûr)... rien. Nada. Que dalle.

Reply

Marsh Posté le 02-05-2006 à 11:10:21    

jipo a écrit :

Ah une piste ...
Effectivement : des valeurs entre 0 et 1 ...  
 
Et alors y a-t-il un parametrage particulier ? Un paramètre qui serait pas bon qqpart ?


As-tu fait "man hypot" sur tes machines 64 bits ? Il y a peut être un bug, une remarque...
 
Ce que je constate déjà, c'est que ce n'est pas une fonction standard C99. Vu du langage C, le comportement est donc indéfini. rien à dire. Le 1 (ou le 0) sont 'normaux', puisque tout peut arriver...
 
Par contre, elle existe en C99.

Citation :

n1124
7.12.7.3 The hypot functions
Synopsis
1 #include <math.h>
double hypot(double x, double y);
float hypotf(float x, float y);
long double hypotl(long double x, long double y);
Description
2 The hypot functions compute the square root of the sum of the squares of x and y,
without undue overflow or underflow. A range error may occur.
3 Returns
4 The hypot functions return ⎯√⎯⎯x⎯2 ⎯+⎯y2.


Quel est ton compîlateur (version etc.)


Message édité par Emmanuel Delahaye le 02-05-2006 à 11:22:08

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-05-2006 à 11:13:37    

Voici la page :
 


NAME
       hypot, hypotf, hypotl - Euclidean distance function
 
SYNOPSIS
       #include <math.h>
 
       double hypot(double x, double y);
 
       float hypotf(float x, float y);
 
       long double hypotl (long double x, long double y);
 
DESCRIPTION
       The hypot() function returns sqrt(x*x+y*y).  This is the length of the
       hypotenuse of a right-angle triangle with sides of length x and y,  or
       the distance of the point (x,y) from the origin.
 
CONFORMING TO
       SVID  3, BSD 4.3, C99.  The float and the long double variants are C99
       requirements.
 
SEE ALSO
       sqrt(3), cabs(3)



---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 02-05-2006 à 11:24:20    

Avec la simple compile depuis cc ci-dessus, j'obtiens le bon résultat ... bizarre non ?
Que pensez-vous de mes options de compilation dans le makefile ?
 
Apres test de la compile et du link sans les options -Wall -ansi le programme renvoit le bon résultat !
 
-Wall -ansi ?????
 
J'aimerais bien avoir le fin mot de l'histoire ....
 
 
 
 


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 02-05-2006 à 11:28:35    


gcc -v :
 


Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,objc,java,f77 --enable-java-awt=gtk --host=x86_64-redhat-linux
Thread model: posix
gcc version 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 02-05-2006 à 11:31:42    

jipo a écrit :

J'aimerais bien avoir le fin mot de l'histoire ....


Ben ta machine est pourrie. Mais pour te faire plaisir, je te la rachète 100... non 150 euro...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 02-05-2006 à 11:33:24    

normal, -ansi tu fais disparaitre les proto des fonctions pas ansi. ça doit gueuler. résultat, gcc synthétise un proto pour hypt tel que int hypot(int) ... et donc ça chie. c'est typique.
 
c'est la même chose que l'histoire de malloc sans <stdlib.h>

Reply

Marsh Posté le 02-05-2006 à 11:34:46    

Je peux pas la revendre ... C'est une lame 64 bits qui coute les yeux de la tête à mon employeur ...


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 02-05-2006 à 11:36:53    

jipo a écrit :

Avec la simple compile depuis cc ci-dessus, j'obtiens le bon résultat ... bizarre non ?
Que pensez-vous de mes options de compilation dans le makefile ?
 
Apres test de la compile et du link sans les options -Wall -ansi le programme renvoit le bon résultat !
 
-Wall -ansi ?????
 
J'aimerais bien avoir le fin mot de l'histoire ....


-ansi force le mode C90. En C90, hypot() n'est pas définie. Le comportement est donc indéterminé.
Essaye -std=c99 à la place.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-05-2006 à 11:37:24    

Taz a écrit :

normal, -ansi tu fais disparaitre les proto des fonctions pas ansi. ça doit gueuler. résultat, gcc synthétise un proto pour hypt tel que int hypot(int) ... et donc ça chie. c'est typique.
 
c'est la même chose que l'histoire de malloc sans <stdlib.h>


 
Conclusion : Il faut juste que je compile sans -ansi ? Ou alors y a-t-il une définition de fonction pour hypot dans une autre lib qui soit compatible avec l'option -ansi ?
 
Désolé je démarre sous Linux ... et en plus en C ... [:aztechxx]  


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 02-05-2006 à 11:46:34    

jipo a écrit :

Conclusion : Il faut juste que je compile sans -ansi ? Ou alors y a-t-il une définition de fonction pour hypot dans une autre lib qui soit compatible avec l'option -ansi ?
 
Désolé je démarre sous Linux ... et en plus en C ... [:aztechxx]


Je viens de te le dire : Retire -ansi et mets -std=c99 à la place. Il faut lire les réponses, on va pas passer notre temps à se répéter indéfiniment...
 
Je conseille :  

-Wall -Wextra -O2 -std=c99


 
Et C99, c'est du C. (Rien à voir avec Linux)


Message édité par Emmanuel Delahaye le 02-05-2006 à 11:47:01

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-05-2006 à 11:49:12    

Emmanuel Delahaye a écrit :

-ansi force le mode C90. En C90, hypot() n'est pas définie. Le comportement est donc indéterminé.


Hum, ya qqchose qui m'échape
-ansi force le code à être écrit à la norme ansi. Mais en quoi cette écriture empêche-t-elle d'exécuter une fonction déjà écrite et compilée et présente dans la librairie "libm" (et probablement prototypée dans "math.h" ) ?


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 02-05-2006 à 11:49:15    

Emmanuel Delahaye a écrit :

-ansi force le mode C90. En C90, hypot() n'est pas définie. Le comportement est donc indéterminé.
Essaye -std=c99 à la place.


 
Merci :
 
Effectivement cela fonctionne.
Est-ce une situation normale ? Je veux dire : est-ce normal dans mon cas d'utiliser -std=c99 en lieu et place de -ansi ? Ou alors c'est juste une rustinerie  pour que cela marche chez moi ?
 
Ou autrement dit : Est-ce que mes options de compil étaient nulles et moi avec  [:audi]  ?
 
En tout cas merci à tous  :hello:  


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 02-05-2006 à 11:51:27    

A part la page gnu.org sur gcc, y a-t-il une autre source de documentation avec des EXEMPLES sur l'utilisation de gcc ?


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
Reply

Marsh Posté le 02-05-2006 à 12:54:45    

Sve@r a écrit :

-ansi force le code à être écrit à la norme ansi. Mais en quoi cette écriture empêche-t-elle d'exécuter une fonction déjà écrite et compilée et présente dans la librairie "libm" (et probablement prototypée dans "math.h" ) ?


-ansi a le même sens que -std=c90. Ca provoque probablement la mise en commentaire des prototypes des fonctions non conformes à C90. L'appel se faisant sans prototype (activer les warnings...), le comportement est indéterminé.

Message cité 1 fois
Message édité par Emmanuel Delahaye le 02-05-2006 à 12:56:16

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-05-2006 à 12:59:02    

jipo a écrit :


Est-ce une situation normale ? Je veux dire : est-ce normal dans mon cas d'utiliser -std=c99 en lieu et place de -ansi ?


Ben oui. Tu utilises une fonction de C99. Il est normal de s'assurer que le compilateur est bien utilisé dans le bon mode...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-05-2006 à 13:24:05    

Emmanuel Delahaye a écrit :

Ca provoque probablement la mise en commentaire des prototypes des fonctions non conformes à C90.


Evidemment - Partant de là...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 02-05-2006 à 13:35:12    

Sve@r a écrit :

Evidemment - Partant de là...


C'est logique non ? Les modes -ansi ou -std=xxx sont des modes stricts. Pas d'extension.
 
On est pas obligé de les utiliser, mais attention à la portabilité (il n'y a pas gcc partout !)


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed