Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

warning

Habilita la modificación selectiva 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 )

Los siguientes parámetros especificador-advertencia están disponibles:

advertencia-especificador

Significado

1, 2, 3, 4

Aplicar el nivel dado a la(s) advertencia(s) especificada(s). Esto también se convierte en una advertencia especificada que está desactivada por defecto.

default

Restablece el comportamiento de advertencia a su valor predeterminado. Esto también se convierte en una advertencia especificada que está desactivada por defecto. La advertencia será generada a su nivel documentado por defecto.

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

disable

No emite los mensajes de advertencia especificados.

error

Reporte las advertencias especificadas como errores.

once

Visualiza los mensajes especificados una sola vez.

suppress

Inserta el estado actual del pragma en la pila, deshabilita la advertencia especificada para el siguiente renglón, y luego saca la advertencia de la pila a fin de restaurar el estado de pragma.

La instrucción de código siguiente muestra como 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 funcionalmente 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án asociados con la generación de código, el estado de la advertencia en vigor 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 muestra la posición correcta de la directivas 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 completa.

inserción y Pop

La instrucción warning de la directiva #pragma también admite la siguiente sintaxis:

#pragma warning(  push [ ,n ] )

#pragma warning(  pop )

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

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

La declaración #pragma warning( pop )saca el valor del estado de la última advertencia insertada en la pila. Se deshace así cualquier cambio realizado en el estado de la advertencia entre las acciones 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) al que tenía al principio del código.

Al escribir los archivos de encabezado, puede utilizar push y pop para garantizar que los cambios de estado-advertencia realizados por un usuario no evitan que los encabezados compilen correctamente. Utilice push al principio del encabezado y pop al final. Por ejemplo, si tiene un encabezado que no compile de forma correcta en el nivel de advertencia 4el código siguiente cambiaría el nivel de advertencia a 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.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft