我知道有三种方法可以抑制“未使用的变量”警告。哪种方法更好?
第一种方法
- (void)testString:(NSString *)testString
{
(void)testString;
}
第二
- (void)testString:(NSString *)__unused testString
{
}
第三
- (void)testString:(NSString *)testString
{
#pragma unused(testString)
}
我知道有三种方法可以抑制“未使用的变量”警告。哪种方法更好?
第一种方法
- (void)testString:(NSString *)testString
{
(void)testString;
}
第二
- (void)testString:(NSString *)__unused testString
{
}
第三
- (void)testString:(NSString *)testString
{
#pragma unused(testString)
}
#pragma unused(testString)
)包装到宏中。- (void)testString:(NSString *)testString
{
MONUnusedParameter(testString);
}
如果你正在使用GCC编译,你可以利用属性扩展来设置"unused"属性。像这样:
int somevar __attribute__((unused));
它还适用于未使用参数警告 (-Wunused-parameter)。
为了使写作更短,我正在使用此宏:
#define _U_ __attribute__((unused))
并像这样声明:
int somevar _U_ ;
一种方法是在声明变量后无意义地分配一个变量,例如:
int foo;
foo = 0;
这应该可以抑制未使用变量的警告。这只是一个无意义的赋值。
但除此之外,如果你必须从这三个中选择一个,我会同意ouah的看法,第一种方法是最可靠的。
void
是最具可移植性和更符合惯用方式的方法。 - ouah#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-variable" <#未使用的变量#> #pragma clang diagnostic pop
。 - jscs