2013-07-12 21 views
11

Có 3 cách (mà tôi biết) để ngăn chặn cảnh báo "biến không sử dụng". Bất kỳ cách nào đặc biệt là tốt hơn khác?Cách tốt nhất để ngăn chặn cảnh báo "biến không sử dụng"

Đầu tiên

- (void)testString:(NSString *)testString 
{ 
    (void)testString; 
} 

Second

- (void)testString:(NSString *)__unused testString 
{ 

} 

Thứ ba

- (void)testString:(NSString *)testString 
{ 
    #pragma unused(testString) 
} 
+7

'-Không sử dụng biến ' –

+4

Xóa hoặc nhận xét các phần không sử dụng. –

+6

Thứ nhất, truyền tới 'void' là cách di động và thành ngữ nhất. – ouah

Trả lời

5

Đây là phương pháp tôi sử dụng: cross platform macro for silencing unused variables warning

Nó cho phép bạn sử dụng một vĩ mô cho nền tảng bất kỳ (mặc dù các định nghĩa có thể khác nhau, tùy thuộc vào trình biên dịch), vì vậy đó là một cách tiếp cận rất di động để bày tỏ ý định các trình biên dịch phổ biến cho các ngôn ngữ dựa trên C. Trên GCC và Clang, nó tương đương với gói ví dụ thứ ba của bạn (#pragma unused(testString)) thành một macro.

Sử dụng ví dụ từ câu trả lời liên quan:

- (void)testString:(NSString *)testString 
{ 
    MONUnusedParameter(testString); 
} 

tôi đã tìm thấy phương pháp này tốt nhất cho tính di động và rõ ràng, được sử dụng với một số C khá lớn, C++, ObjC, và ObjC++ codebases.

+1

Tôi thích ý tưởng này. Tôi ghét thụt lề trái #pragma bằng cách làm điều này, chúng tôi cũng có thể giải quyết vấn đề đó. – AAV

+1

@AmitVyawahare haha ​​- tôi cũng vậy :) – justin

-9

Một cách để làm điều đó là chỉ để gán một biến vô nghĩa sau khi nó được khai báo Ví dụ:

int foo; 
foo = 0; 

Điều này sẽ chặn cảnh báo biến không sử dụng. Nó chỉ là một nhiệm vụ vô nghĩa.
Nhưng nếu không tôi sẽ đồng ý với ouah, phương pháp đầu tiên là đáng tin cậy nhất, nếu bạn phải chọn từ ba phương pháp đó.

+3

Bạn không nên cấp phát bộ nhớ nhiều hơn bạn cần chỉ để ngăn chặn một cảnh báo. – ozgur

+2

Điều này có thể gây nhầm lẫn cho bất kỳ ai đọc mã của bạn sau này. – bdesham

+3

GCC cũng sẽ cảnh báo rằng nó được thiết lập, nhưng không sử dụng. – OLL

1

Nếu bạn đang biên dịch bằng GCC, bạn có thể tận dụng lợi thế của các phần mở rộng thuộc tính để đặt thuộc tính 'không sử dụng'. Như thế này:

int somevar __attribute__((unused)); 

Nó cũng làm việc cho cảnh báo tham số chưa sử dụng (-Wunused-parameter)

Để làm cho nó ngắn hơn để viết Tôi đang sử dụng macro này:

#define _U_ __attribute__((unused)) 

Và tuyên bố như thế này :

int somevar _U_ ; 
Các vấn đề liên quan