Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[GCC][C99] Question existentielle

2 réponses
Avatar
Stephane Zuckerman
Je tentais de compiler un petit programme UNIX, avec la commande

gcc -Wall -W -O3 -pedantic -std=c99 -o monprog monprog.c

quand, a l'appel de inet_aton(), GCC me repond :

monprog.c:24: warning : implicit declaration of function 'inet_aton'

Evidemment, j'ai verifie que les headers etaient inclus correctement.

Lorsque je retire l'option std=c99, plus de probleme de warning. Y a-t-il
quelque chose qui aurait change entre C89 et C99 pour ce qui est des
declarations de fonctions ?

--
"Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce
que je veux !"
"The obvious mathematical breakthrough would be development of an easy
way to factor large prime numbers." (Bill Gates, The Road Ahead)

2 réponses

Avatar
Jean-Marc Bourguet
Stephane Zuckerman writes:

Je tentais de compiler un petit programme UNIX, avec la commande

gcc -Wall -W -O3 -pedantic -stdÉ9 -o monprog monprog.c

quand, a l'appel de inet_aton(), GCC me repond :

monprog.c:24: warning : implicit declaration of function 'inet_aton'

Evidemment, j'ai verifie que les headers etaient inclus correctement.

Lorsque je retire l'option stdÉ9, plus de probleme de warning. Y a-t-il
quelque chose qui aurait change entre C89 et C99 pour ce qui est des
declarations de fonctions ?


En mettand stdÉ9 tu desactives toutes les extensions au C ISO en
matiere de bibliotheque, vraissemblablement pas ce que tu veux.
Essaie de definir les macros du genre _POSIX_SOURCE, _GNU_SOURCE...

A+

--
Jean-Marc
FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
Richard Delorme
Je tentais de compiler un petit programme UNIX, avec la commande

gcc -Wall -W -O3 -pedantic -stdÉ9 -o monprog monprog.c

quand, a l'appel de inet_aton(), GCC me repond :

monprog.c:24: warning : implicit declaration of function 'inet_aton'

Evidemment, j'ai verifie que les headers etaient inclus correctement.

Lorsque je retire l'option stdÉ9, plus de probleme de warning. Y a-t-il
quelque chose qui aurait change entre C89 et C99 pour ce qui est des
declarations de fonctions ?


Si l'on retire -stdÉ9, on est en mode gcc et non c99 ou c89. Il faut
aussi ajouter -stdÈ9 ou -ansi pour être en mode c89.

La définition de certaines macros peut changer selon ces options.


--
Richard