Retourner aux forums || Retourner au forum Programmation.c
Programmation.c : Problémes de C99 avec les struct des includes
Posté par Edouard Geuten (Jabber id, page perso, ) le 01 octobre 2005j'ai un petit problèmes avec un code source et je ne trouve nulle part d'explications, peut-être quelqu'un ici en saura plus que moi.
Voici deux compilations d'un même fichier source :
$ gcc -Wall -W -Wmissing-prototypes -pedantic test.c -o test
$ gcc -Wall -W -Wmissing-prototypes -pedantic --std=c99 test.c -o test
test.c: Dans la fonction « change_addr »:
test.c:15: error: storage size of `ifr' isn't known
test.c:27: attention : implicit declaration of function `inet_aton'
Comme vous pouvez le voire, si on spécifie l'ISO C99 des erreurs se produisent. Elle concerne la fonction inet_aton et une structure ifreq définie dans <net/if.h>.
Je ne comprend pas pourquoi.
> Lire le message (5 commentaires, moyenne: 2,2).
source de test.c ?
Effectivement, ça paraît curieux.
Il serait plus facile de t'aider si tu publiais le contenu de test.c
warnings
Tes CFLAGS sont trop restrictifs.
Généralement, le warning "storage size of XXX isn't known" apparaît quand on manipule un (void *) ou un type incomplet.
Or la définition de la structure ifreq est entre #ifdef __USE_MISC dans le header, donc elle n'est pas déclarée. Idem pour inet_aton(), qui est une fonction BSD.
Essayes donc d'ajouter -D_BSD_SOURCE à tes CFLAGS.
-
[^]Re: warnings
Posté par Edouard Geuten (Jabber id, page perso, ) le 02/10/2005 à 01:02. (lien). Évalué à 2.De fait ca marche maintenant.
Par contre ca foire a nouveaux sur des fonctions qui utilisent getopt.
Y'a une liste des use flags qu'il est bon d'utiliser ?-
[^]Re: warnings
Posté par Krunch (Jabber id, page perso, ) le 02/10/2005 à 12:49. (lien). Évalué à 2.inet_aton(3) n'est pas très standard, si tu veux un truc un peu plus portable mieux vaut utiliser inet_addr(3) qui est dans SUSv2 (et sans doute POSIX). La liste des macros à définire pour dire à GCC quels standards on veut utiliser est dans /usr/include/features.h.
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf(...) (la final draft d'ISO C99)
http://www.opengroup.org/bookstore/catalog/un.htm(...) (Single UNIX Specification)
(c'est pour le cours de Piater ?)--
Free Softwares Users Group Arlon (Sud Luxembourg, Belgique)
pertinent, e adj. Approprié ; qui se rapporte exactement à ce dont il est question.-
[^]Re: warnings
Posté par Edouard Geuten (Jabber id, page perso, ) le 02/10/2005 à 18:02. (lien). Évalué à 2.hihi
non c'est pas pour le cours de piater, mais ce cours m'a fait me rendre compte que le c99 c bien pratique parfois (et plus propre, et et et ...)
-
-
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.c



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.