cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 27 juil. 2005 à 11:34
Ca ne dépend pas que du compilo mais aussi du système. itoa() n'est pas implémenté sous Solaris, *BSD, HP/UX et certainement sur tous les autres Unix autre que Linux.
Mais c'est sûr que cet argument n'est valable que dans un soucis de portabilité du code.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 27 juil. 2005 à 13:56
enfin je ne saisis pas bien ces modes de compilation:
si je mets un itoa dans mon code (Win), j'ai beau regarder les dépendances de l'exe, y a aucun appel externe, le code de itoa est dans l'exe.
Pas moyen de faire cela sur Unix ??? en ce sens que je dis que c'est 'du pauvre'.
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 27 juil. 2005 à 15:22
Aucun appel externe à itoa() dans l'EXE c'est normal, la libc est liée statiquement à ton exécutable en mode Release avec VC++. Sous
Windows il s'agit d'une fonction présente dans le runtime C de VC++ et
qui ne fait pas partie du système. Sous UNIX, une telle fonction est
présente dans la libc installée de base avec le système.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 27 juil. 2005 à 15:44
bien là que je voulais arriver, ils pourraient le mettre dans le runtime C des compilos qui ciblent les Unix n'ayant pas itoa, et cela pour toutes les fonctions habituelles qui n'y sont pas.
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 27 juil. 2005 à 16:29
Oui mais comment tu détermines la liste des fonctions "habituelles" ?
Est-ce que la fonction implémentée par le compilateur A aura le même
comportement que celle implémentée par le compilateur B dans tous les
cas d'utilisation ? Les standards sont là pour éviter ce genre de
problème.
En suivant ton raisonnement: MS ajoute une fonction à Windows à partir
de la version 2K, je l'utilise dans mon programme. Quand je veux
compiler mon programme sous NT ou 9X, VC++ devrait remarquer que la
fonction n'existe et que c'est à lui d'ajouter le code pour que ca
compile ???
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 27 juil. 2005 à 16:48
Je vois itoa employé par des utilisateurs de Devcpp, c'est pas du MS, voilà pourquoi je pense que ce genre de fonction est devenu un standard "de fait".