warning

Permite realizar selectivo del comportamiento de los mensajes de advertencia del compilador.

#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...] )
#pragma warning( push[ ,n ] )
#pragma warning( pop )

Comentarios

Los siguientes parámetros de advertencia-especificador están disponibles.

advertencia-especificador

Significado

1, 2, 3, 4

Aplica el nivel dado a advertencias concretas.Esto también gira una advertencia especificada que está desactivada de forma predeterminada.

default

Comportamiento de advertencia de reinicio a su valor predeterminado.Esto también gira una advertencia especificada que está desactivada de forma predeterminada.La advertencia se genere en su valor predeterminado, documentado, nivel.

Para obtener más información, vea Advertencias del compilador Desactivadas De forma predeterminada.

disable

no emita el mensaje de advertencia especificado.

error

Indicar advertencias concretas como errores.

once

Muestra los mensajes especificados sólo una vez.

suppress

Inserta el estado actual del pragma en la pila, deshabilita la advertencia especificada para la línea siguiente, y luego extrae la pila advertencia para restaurar el estado de pragma.

La instrucción de código siguiente se muestra un parámetro de warning-number-list puede contener números de advertencia múltiples, y que varios parámetros de warning-specifier se pueden especificar en la misma directiva pragma.

#pragma warning( disable : 4507 34; once : 4385; error : 164 )

Esto es equivalente al código siguiente.

// Disable warning messages 4507 and 4034.
#pragma warning( disable : 4507 34 )

// Issue warning 4385 only once.
#pragma warning( once : 4385 )

// Report warning 4164 as an error.
#pragma warning( error : 164 )

El compilador agrega 4000 a cualquier número de advertencia que esté entre 0 y 999.

Para los números de advertencia en el intervalo 4700-4999, que son los que está asociado con la generación de código, el estado de la advertencia en efecto cuando el compilador encuentra la llave de apertura de una función entrará en vigor para el resto de la función.Con la directiva de warning en la función para cambiar el estado de una advertencia que tiene un número mayor de 4699 tendrán sólo efecto después del final de la función.El ejemplo siguiente se muestra la posición correcta de pragmas de warning para deshabilitar un mensaje de advertencia de generación de código, y a continuación restablecerlo.

// pragma_warning.cpp
// compile with: /W1
#pragma warning(disable:4700)
void Test() {
   int x;
   int y = x;   // no C4700 here
   #pragma warning(default:4700)   // C4700 enabled after Test ends
}

int main() {
   int x;
   int y = x;   // C4700
}

Observe que en el cuerpo de la función, el último valor de pragma de warning entrará en vigor para la función de conjunto.

inserción y Pop

La pragma de warning también admite la sintaxis siguiente.

#pragma warning( push [ ,n ] )

#pragma warning( pop )

Donde n representa un nivel de advertencia (1 a 4).

La pragma warning( push )almacena el estado actual de la advertencia para cada advertencia.La pragma warning( push,n)almacena el estado actual para cada advertencia y establece el nivel de advertencia global a n.

La pragma warning( pop )saca el estado de la última advertencia insertada en la pila.Se deshace cualquier cambio realizado el estado de la advertencia entre push y pop .Considere este ejemplo:

#pragma warning( push )
#pragma warning( disable : 4705 )
#pragma warning( disable : 4706 )
#pragma warning( disable : 4707 )
// Some code
#pragma warning( pop ) 

Al final de este código, pop restablece el estado de cada advertencia (incluye 4705, 4706, y 4707) cuál era al principio del código.

Al escribir los archivos de encabezado, puede utilizar push y pop para garantizar que la advertencia-provincia realizados por un usuario no evita que los encabezados compilen correctamente.Utilice push al principio del encabezado y pop al final.Por ejemplo, si tiene un encabezado que no compile limpio en el nivel de advertencia 4, el código siguiente cambia el nivel de advertencia en 3 y después restablecería el nivel de advertencia original al final del encabezado.

#pragma warning( push, 3 )
// Declarations/definitions
#pragma warning( pop ) 

Para obtener más información sobre las opciones del compilador que ayudan a suprimir advertencias, vea /FI y /w.

Vea también

Referencia

Directivas de pragma y la palabra clave de __Pragma