web-dev-qa-db-fra.com

désactiver des avertissements spécifiques dans gcc

Sur les compilateurs Microsoft, des avertissements spécifiques peuvent être désactivés avec un #pragma, sans désactiver d'autres avertissements. C'est une fonctionnalité extrêmement utile si le compilateur met en garde contre quelque chose qui "doit être fait".

GCC a-t-il à ce stade une fonctionnalité similaire? Cela semble être une fonctionnalité suffisamment évidente pour qu'il soit inimaginable qu'elle ne l'ait pas encore, mais des informations plus anciennes sur le Web suggèrent que cette fonctionnalité n'existe pas.

Quel est celui à utiliser dans GCC?

Plus précisément, j'aime utiliser des constantes multi-caractères, comme "abc". Ceux-ci s'évaluent efficacement comme un nombre de base 256 - une fonctionnalité très pratique, mais elle déclenche un avertissement. C'est très pratique pour activer quatre chaînes de caractères dans une déclaration de cas.

37
Matthias Wandel

Depuis le manuel de gcc:

   Many options have long names starting with -f or with -W---for example,
   -fforce-mem, -fstrength-reduce, -Wformat and so on.  Most of these have
   both positive and negative forms; the negative form of -ffoo would be
   -fno-foo.  This manual documents only one of these two forms, whichever
   one is not the default.

Mais si vous demandez s'il existe un avertissement au niveau source, je ne sais pas si cette fonctionnalité existe dans gcc.

24
Mark Rushakoff

- Wno-multichar :

Ne pas avertir si une constante multi-caractères ('FOOF') est utilisée. Habituellement, ils indiquent une faute de frappe dans le code de l'utilisateur, car ils ont des valeurs définies par l'implémentation et ne doivent pas être utilisés dans le code portable.

Plus d'informations .

12
dfa

À l'intérieur du code source, écrivez:

#pragma GCC diagnostic ignored "-Wno-multichar"

// code with  warnings but wont be displayed now...
8
pPanda_beta