Domanda

Posso inibire molti avvisi in Visual Studio 2005 SP1 nella pagina delle proprietà Avanzate di C / C ++, che fa sì che l'IDE utilizzi l'opzione / wd sulla riga di comando che richiama il compilatore. Tuttavia, quando provo a inibire l'avviso 4200 (estensione non standard utilizzata: array di dimensioni zero in struct / union), appare ancora quando compilo. (Ovviamente è giustificato; non sono in grado di correggere il codice, né varrebbe la pena preoccuparsi, perché è generato e l'avvertimento è del tutto benigno in base alle circostanze.) Qualcuno capisci se questo è un bug nel compilatore? O potrebbe esserci qualcosa che posso fare al riguardo?

È stato utile?

Soluzione

Intendi come con pragma ?

#pragma warning( disable : 2400 )

Altri suggerimenti

Per disabilitare completamente l'avviso nel file, è possibile aggiungere quanto segue all'inizio del file

#pragma warning(disable:2400)

Se si desidera una maggiore flessibilità oltre a una disabilitazione generale del file, la pagina seguente elenca molte altre opzioni più dettagliate.

In base alle tue informazioni non è chiaro se si tratti di un bug nel compilatore o di un problema di configurazione. Mi spingerei verso un problema di configurazione, in particolare le opzioni del compilatore in conflitto che sta rendendo difficile sopprimere l'avviso.

MODIFICA

OP ha menzionato che non possono controllare il codice generato, quindi non possono includere direttamente il pragma. In tal caso, prova questo trucco. Supponiamo che il nome del file sia Generated.cpp. Non includere più Generated.cpp come uno dei file da compilare. Crea invece un nuovo file chiamato Example.cpp con i seguenti contenuti

#pragma warning(disable:2400)
#include "Generated.cpp"

Ora otterrai il testo di Generated.cpp con l'avviso disabilitato compilando solo Example.cpp.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top