2011-11-09 25 views
11

Tôi muốn thực hiện một hàm để lấy một con trỏ trên một cấu trúc. Tôi làm điều này:Ẩn cảnh báo GCC "đã đặt nhưng không được sử dụng"?

void *getTokenList() { 
    static t_token *list; 

    return &list; 
} 

Tại biên soạn, tôi có cảnh báo này: warning: variable ‘list’ set but not used [-Wunused-but-set-variable]

Có thể vô hiệu hóa cảnh báo này cho chức năng này (chỉ có một này), hoặc đặt thuộc tính một GCC trên biến này để ẩn cảnh báo này?

Tôi đã đặt #pragma GCC diagnostic ignored "-Wunused-but-set-variable" ở đầu tệp nhưng tôi muốn ẩn cảnh báo này CHỈ cho biến này trong hàm này.

Cảm ơn, Jean

+1

phiên bản gcc nào cung cấp cho bạn? Mỏ (gcc 4.5.2) thì không. Điều này là hoàn toàn không có thật, nếu bạn thực sự trả về một địa chỉ của biến đó cho người gọi. –

+0

'' 'Tôi đã đặt '#pragma GCC bị bỏ qua chẩn đoán" -Wunused-but-set-variable "' ở đầu tệp của tôi' '', đó là một mẹo tuyệt vời. Nó làm việc hoàn hảo cho tôi vì các biến không sử dụng nằm trong một tệp mà tôi lấy từ một nhà phát triển bên ngoài và tôi muốn thêm các thay đổi tối thiểu vào nó ... –

Trả lời

15

Bạn có thể sử dụng để tắt nó đi:

(void)list; 

Ngoài ra và ít portably bạn có thể sử dụng __attribute__((unused)).

+0

+1 Mặc dù __attribute __ ((chưa sử dụng)) rõ ràng hơn rất nhiều, nó hoàn toàn không di động ! – Macmade

1

static t_token *__attribute__((unused)) list;

Các vấn đề liên quan