2009-07-03 13 views
36

Sui compilatori microsoft, gli avvisi specifici possono essere disabilitati con un #pragma, senza disattivare altri avvisi. Questa è una funzionalità estremamente utile se il compilatore avverte su qualcosa che "deve essere fatto".disabilita avvisi specifici in gcc

GCC a questo punto ha una funzione simile? Sembra una caratteristica abbastanza ovvia che è inimmaginabile che non avrebbe ancora questa funzione, ma le informazioni più vecchie sul web suggeriscono che questa funzione non esiste.

Qual è uno da utilizzare in GCC?

In particolare, mi piace usare costanti multi-carattere, come 'abc'. Questi valutano efficacemente come un numero di base 256 - una funzione molto utile, ma attiva un avviso. È molto utile per l'attivazione di quattro stringhe di caratteri in una dichiarazione del caso.

+3

Duplicati: http://stackoverflow.com/questions/487108/how-to-supress-specific-warnings-in-g http://stackoverflow.com/ domande/925179/rimozione selettiva-avviso http://stackoverflow.com/questions/965093/selectively-disable-gcc-warnings-for-ally-part-of-a-translation-unit –

risposta

33

Questo può essere fatto con gcc's diagnostic pragmas.

+0

Questo sarà utile dopo l'aggiornamento a un nuovo GCC. Sembra essere una nuova funzionalità. –

24

Dal manuale 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. 

Ma se si sta chiedendo se v'è un disabilitare gli avvisi a livello sorgente, io non sono a conoscenza se tale funzione esiste in gcc.

11

-Wno-multichar:

Non avvisate se si utilizza una costante multicarattere ('FOOF'). Di solito indicano un errore di battitura nel codice utente , poiché hanno valori definiti dall'implementazione e non devono essere utilizzati nel codice portatile .

More information.

7

All'interno del codice sorgente di scrittura:

#pragma GCC diagnostic ignored "-Wno-multichar" 

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

È inoltre utile notare che è possibile impostare la diagnostica per piccoli bit di codice utilizzando '#pragma GCC diagnostic push' e' #pragma GCC diagnostic pop'. – Hector

Problemi correlati