2009-07-03 17 views
36

En los compiladores de microsoft, las advertencias específicas se pueden desactivar con un #pragma, sin desactivar otras advertencias. Esta es una característica extremadamente útil si el compilador advierte sobre algo que "tiene que hacerse".desactivar advertencias específicas en gcc

¿En este momento, GCC tiene una función similar? Parece una característica bastante obvia que es inimaginable que aún no tenga esta característica, pero la información anterior en la web sugiere que esta característica no existe.

¿Cuál es uno para usar en GCC?

Específicamente, me gusta usar constantes de varios caracteres, como 'abc'. Estos se evalúan efectivamente como un número base 256, una característica muy útil, pero genera una advertencia. Es muy útil para activar cuatro cadenas de caracteres en una declaración de caso.

+3

Duplicados: http://stackoverflow.com/questions/487108/how-to-supress-specific-warnings-in-g http://stackoverflow.com/ preguntas/925179/eliminación selectiva de advertencia http://stackoverflow.com/questions/965093/selectively-disable-gcc-warnings-for-only-part-of-a-translation-unit –

Respuesta

33

Esto se puede hacer con gcc's diagnostic pragmas.

+0

Esto será útil una vez que actualizo a un GCC más nuevo. Parece ser una característica más nueva. –

24

Desde el manual 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. 

Pero si estás preguntando si hay una desactivar la advertencia de nivel de fuente, no estoy al tanto si existe esa característica en gcc.

11

-Wno-multichar:

No avisarme si se utiliza una constante de varios caracteres ('Foof'). Por lo general, indican un error tipográfico en el código del usuario, ya que tienen valores definidos por la implementación y no deben usarse en el código portátil .

More information.

7

Dentro del código fuente de escritura:

#pragma GCC diagnostic ignored "-Wno-multichar" 

// code with warnings but wont be displayed now... 
+0

También es bueno tener en cuenta que los diagnósticos se pueden establecer para pequeños bits de código usando '#pragma GCC diagnostic push' y' #pragma GCC diagnostic pop'. – Hector

Cuestiones relacionadas