warning

Consente la modifica selettiva del comportamento dei messaggi di avviso del compilatore.

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

Note

i seguenti parametri dell'avviso-identificatore sono disponibili.

avviso-identificatore

Significato

1, 2, 3, 4

applicare il livello specificato agli avvisi specificati.Viene anche attiva un avviso specificato che è disattivato per impostazione predefinita.

default

Comportamento di avviso reimpostare il valore predefinito.Viene anche attiva un avviso specificato che è disattivato per impostazione predefinita.L'avviso viene generato alla sua impostazione predefinita, documentato, level.

Per ulteriori informazioni, vedere Avvisi del compilatore disinseriti per impostazione predefinita.

disable

non pubblicare il messaggio di avviso specificato.

error

Segnalare gli avvisi specifici come errori.

once

Visualizzare i messaggi di una sola volta.

suppress

Inserisce nello stato corrente del pragma nello stack, disabilitare l'avviso specificato per la riga successiva e quindi estrae lo stack di avviso in modo da reimpostare lo stato di pragma.

L'istruzione di codice seguente viene illustrato che a warning-number-list il parametro può contenere numeri di avviso più e che più warning-specifier i parametri possono essere specificati nella stessa direttiva pragma.

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

Si tratta del punto di vista funzionale equivalente al codice seguente.

// 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 )

Il compilatore aggiunge 4000 a qualsiasi numero di avviso compreso tra 0 e 999.

Per i numeri di avviso nell'intervallo 4700-4999, ovvero quelli associati alla generazione di codice, lo stato dell'avviso attiva quando il compilatore rileva la parentesi graffa di apertura di una funzione sarà attiva nel resto della funzione.Utilizzo di warning il pragma nella funzione per modificare lo stato di un problema con un numero maggiore di 4699 entrerà effettive solo dopo la fine della funzione.Nell'esempio seguente viene illustrata la posizione corretta di warning pragma per disabilitare un messaggio di avviso della generazione di codice per poi ripristinarlo.

// 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
}

Si noti che in un corpo della funzione, l'ultima impostazione di warning il pragma sarà attiva nella funzione intera.

Inserire e visualizzare

warning il pragma supporta anche la sintassi seguente.

#pragma warning( push [ ,n ] )

#pragma warning( pop )

dove n rappresenta un livello di avviso (da 1 a 4).

il pragma warning( push )consente di archiviare lo stato corrente di avviso per ogni avviso.il pragma warning( push,n)consente di archiviare lo stato corrente di ogni avviso e imposta il livello di avviso globale a n.

il pragma warning( pop )estrae l'ultimo stato dell'avviso inserito nello stack.Le modifiche sono state apportate allo stato dell'avviso tra push e pop vengono annullati.Si consideri l'esempio seguente:

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

Alla fine di questo codice, pop ripristina lo stato di ogni avviso (include 4705, 4706 e 4707) a cui si trovava all'inizio del codice.

Quando si scrive i file di intestazione, è possibile utilizzare push e pop per garantire che le modifiche dello avviso-stato apportate da un utente non impediscono le intestazioni della compilazione correttamente.utilizzo push nella parte superiore e intestazioni pop alla fine.Ad esempio, se si dispone di un'intestazione che non viene compilato in modo corretto al livello di avviso 4, il codice seguente imposterebbe il livello di avviso a 3 e quindi torna il livello di avviso originale alla fine dell'intestazione.

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

Per ulteriori informazioni sulle opzioni del compilatore che consentono di eliminare gli avvisi, vedere /FI e /w.

Vedere anche

Riferimenti

Direttive pragma e la parola chiave di __Pragma