FAQ CConsultez toutes les FAQ

Nombre d'auteurs : 30, nombre de questions : 181, dernière mise à jour : 16 février 2017  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de www.developpez.com et de l'expérience personnelle des auteurs.

Je tiens à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes ; les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, lisez ceci .

Sur ce, je vous souhaite une bonne lecture.


SommaireCompilation et édition des liens (22)
précédent sommaire suivant
 

Le langage C exige une grande rigueur lors de l'écriture du code. Il peut être fastidieux de vérifier que toutes les variables sont correctement initialisées, ou encore détecter les erreurs telles que la confusion entre les opérateurs = et ==. Heureusement, le compilateur gcc est capable de détecter ce genre d'erreur, il suffit pour cela de lui passer un certain nombre d'arguments. Voici la ligne de commande type qui permet de faire du code conforme à la norme ANSI (C89) et de corriger un grand nombre de comportements indéfinis :

Code C : Sélectionner tout
-O2 -Wall -W -Werror -ansi -pedantic
Cependant ces options peuvent être trop contraignantes : par exemple, avec GTK+ les prototypes des fonctions callback sont imposés, mais il se peut que tous les arguments ne vous servent pas dans la fonction, dans ce cas gcc refusera de compiler votre code. Pour pallier ce problème, utilisez plutôt les options :

Code C : Sélectionner tout
-O2 -Wall -Werror -ansi -pedantic
Notons que ces options forcent le compilateur à passer en mode "C89 strict", pour pouvoir utiliser le mode « C99 », il faut remplacer -ansi par -std=c99, la ligne d'option devient donc :

Code C : Sélectionner tout
-O2 -Wall -Werror -std=c99 -pedantic
Contrairement à ce que son nom peut laisser penser, -Wall n'active pas tous les warning, mais tous ceux jugés importants par l'équipe de gcc.

Mis à jour le 11 septembre 2006 Anomaly gege2061 gl

Cette erreur est due à l'absence de la fonction WinMain(). Cette fonction remplace le main d'un programme C standard dans le cas d'un programme spécifiquement conçu pour Windows. Pour supprimer cette erreur, modifiez le type de votre projet en projet d'application console.

Mis à jour le 7 novembre 2005 gege2061

La norme stipule qu'une ligne complète doit être terminée par un saut de ligne. Ce warning signale que la dernière ligne du fichier n'est pas complète. Pour supprimer ce warning, il suffit de compléter la ligne.

Mis à jour le 7 novembre 2005 gl

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2017 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
Contacter le responsable de la rubrique C