2012-08-06 27 views
6

Làm cách nào để ngăn chặn trình biên dịch cảnh báo tạo ra các biến không sử dụng trong chương trình C++?Làm cách nào để chặn cảnh báo về các biến không sử dụng trong C++?

Tôi đang sử dụng trình biên dịch g ++

+4

Trình biên dịch nào? – Jacob

+0

"Làm thế nào có thể?" Tại sao một người muốn? – Beta

+2

Bằng cách sử dụng chúng? Nếu một biến không được sử dụng, tại sao bạn không thể xóa định nghĩa của nó? Bạn cũng có thể có câu trả lời hay cho câu trả lời này và/hoặc câu trả lời đó có thể ảnh hưởng đến cách tiếp cận tốt nhất để sử dụng. –

Trả lời

7

Biên dịch với tùy chọn -Wno-unused-variable.

Xem GCC documentation on Warning Options để biết thêm thông tin.

Tùy chọn -Wno-__ tắt tùy chọn được đặt bởi -W__. Ở đây chúng tôi đang tắt -Wunused-variable.

Ngoài ra, bạn có thể áp dụng các __attribute__((unused)) cho biến (hoặc chức năng, vv) để ngăn chặn cảnh báo này trên cơ sở từng trường hợp cụ thể. Cảm ơn Jesse Good vì đã đề cập đến điều này.

10

Đặt trong một dàn diễn viên để làm mất hiệu lực:

int unused; 
(void)unused; 
+0

Việc truyền tới 'void' là cách thành ngữ để đánh dấu một biến là * được sử dụng * nhưng không có tác dụng phụ. +1 –

+0

đơn giản và dễ dàng. Đẹp nhất. +1 – Neophile

+0

đặc biệt hữu ích nếu biến đã cho được sử dụng trong phần có điều kiện (ví dụ tham số hàm chỉ được sử dụng trong nhật ký gỡ lỗi) –

2

Để loại bỏ những cảnh báo này tôi thực hiện một vĩ mô có thể được sử dụng trong suốt dự án của tôi:

#define UNUSED(x) (void)(x) 
+0

Điều này không có tác dụng với tôi – JAM

+0

Bạn đang sử dụng nó với bất kỳ biến nào hay chỉ định nghĩa nó? – Aesthete

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