2011-11-09 6 views
11

Voglio fare una funzione per ottenere un puntatore su una struttura. Ho fatto questo:Nascondi avviso GCC "set ma non usato"?

void *getTokenList() { 
    static t_token *list; 

    return &list; 
} 

Alla compilazione, ho questo avvertimento: warning: variable ‘list’ set but not used [-Wunused-but-set-variable]

E 'possibile disattivare l'avviso per questa funzione (solo questo), o mettere un GCC attributo questa variabile per nascondere questo avviso?

Avevo messo #pragma GCC diagnostic ignored "-Wunused-but-set-variable" in cima al mio file ma voglio nascondere questo avviso SOLO per questa variabile in questa funzione.

Grazie, Jean

+1

quale versione di gcc ti sta dando? Il mio (gcc 4.5.2) no. Questo è definitivamente falso, se si restituisce veramente un indirizzo di quella variabile al chiamante. –

+0

'' 'Ho inserito '#pragma GCC diagnostic ignored" -Wunused-but-set-variable "' in cima al mio file' '', questo è un grande trucco. Ha funzionato perfettamente per me poiché le variabili non utilizzate erano in un file che ho preso da uno sviluppatore esterno e volevo aggiungere modifiche minime ad esso ... –

risposta

15

È possibile utilizzare questo per spegnerlo:

(void)list; 

alternativa e meno portabile è possibile utilizzare __attribute__((unused)).

+0

+1 Anche se __attribute __ ((non utilizzato)) è molto più chiaro, non è definitivamente portatile ! – Macmade

1

static t_token *__attribute__((unused)) list;