Compilation -ansi

Compilation -ansi - C - Programmation

Marsh Posté le 01-07-2004 à 09:54:11    

Salut,
 
Sur ma SuSE, par exemple un programme qui contient un appel à la fonction kill. J'inclue bien la bibliothèque <signal.h>
 
Pourquoi, si je compile avec gcc et l'option -ansi, j'obtiens ce message :
 

Code :
  1. warning: implicit declaration of function `kill'


 
J'ai le même message avec d'autres fonctions (comme snprintf par exemple), alors que j'inclue bien la bibliothèque adéquate à chaque fois.
 
Voilà je suis curieux de savoir pourquoi.
 
Merci !


---------------
Savoir c'est vivre, et maintenir dans l'ignorance, c'est presque un homicide.
Reply

Marsh Posté le 01-07-2004 à 09:54:11   

Reply

Marsh Posté le 01-07-2004 à 10:14:35    

kill n'est pas ansi, snprintf non plus
 
 
-Wall -W -ansi -pedantic pour être encore plus stricte

Reply

Marsh Posté le 01-07-2004 à 10:39:04    

Donc le but serait de trouver des fonctions équivalentes en ansi pour être le plus portable possible.
 
Quand je vois que pas mal de fonctions liées aux sockets (accept, ntohs, ...) ne sont pas ansi (enfin apparemment), c'est la merde non ?


---------------
Savoir c'est vivre, et maintenir dans l'ignorance, c'est presque un homicide.
Reply

Marsh Posté le 01-07-2004 à 11:16:34    

ce n'est pas parce que des fonctions de sont pas ANSI que la compilation avec le flag -ansi doit sortir des warning. je compile du C avec des fonctions POSIX (posix threads) et je n'ai aucun warning. Je pense qu'il faut chercher ailleurs.

Reply

Marsh Posté le 04-07-2004 à 02:11:36    

Non, y'a pas a chercher ailleurs : si tu regardes dans signal.h tu verra que la déclaration de ces fonctions est protégée par des #ifdef __USE_POSIX. Avec -ansi ces fonctions ne sont pas déclarées.

Reply

Sujets relatifs:

Leave a Replay

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