2011-11-09 19 views
11

Yapıdaki işaretçiyi almak için bir işlev yapmak istiyorum. ben bu işi: warning: variable ‘list’ set but not used [-Wunused-but-set-variable]GCC uyarısını gizle "ayarlandı, ancak kullanılmadı"?

işlevin (sadece bu bir) için bu uyarıyı devre dışı bırakmak veya bir GCC özniteliği koymak mümkün mü:

derleme At
void *getTokenList() { 
    static t_token *list; 

    return &list; 
} 

, bu uyarı var Bu uyarıyı gizlemek için bu değişken?

Dosyamın üstüne #pragma GCC diagnostic ignored "-Wunused-but-set-variable" koymuştum ancak bu işlevde bu değişken için SADECE bu uyarıyı gizlemek istiyorum.

sayesinde Jean

+1

gcc hangi sürümü size veriyor? Benimki (gcc 4.5.2) yok. Bu değişkenin adresini gerçekten arayan kişiye gönderirseniz, bu kesinlikle sahte. –

+0

'' '#pragma GCC teşhisini göz ardı etmiştim' -Wunused-ama-set-variable ''dosyamın üstünde' '', bu harika bir numara. Kullanılmayan değişkenler harici bir geliştiriciden aldığım bir dosyada olduğu gibi mükemmel bir şekilde çalıştı ve bende minimum değişiklik eklemek istedim ... –

cevap

15

Bunu kapatmak için kullanabilir:

(void)list; 

Alternatif ve daha az portably sen __attribute__((unused)) kullanabilirsiniz.

+0

+1 __attribute __ ((kullanılmamış)) çok daha açık olsa da, kesinlikle taşınabilir değil ! – Macmade

1

static t_token *__attribute__((unused)) list;