AAV*_*AAV 11 c objective-c clang ios
有3种(我知道)抑制"未使用的变量"警告的方法.任何特定方式都比其他方式更好?
第一
- (void)testString:(NSString *)testString
{
(void)testString;
}
Run Code Online (Sandbox Code Playgroud)
第二
- (void)testString:(NSString *)__unused testString
{
}
Run Code Online (Sandbox Code Playgroud)
第三
- (void)testString:(NSString *)testString
{
#pragma unused(testString)
}
Run Code Online (Sandbox Code Playgroud)
这是我使用的方法:跨平台宏用于静默未使用的变量警告
它允许您为任何平台使用一个宏(虽然定义可能会有所不同,具体取决于编译器),因此它是一种非常便携的方法,可以表达您对基于C语言的流行编译器的意图.在GCC和Clang上,它相当于将你的第三个例子(#pragma unused(testString))包装成一个宏.
使用链接答案中的示例:
- (void)testString:(NSString *)testString
{
MONUnusedParameter(testString);
}
Run Code Online (Sandbox Code Playgroud)
我发现这种方法最适合于可移植性和清晰度,与一些非常大的C,C++,ObjC和ObjC++代码库一起使用.
如果您使用 GCC 进行编译,则可以利用属性扩展来设置“未使用”属性。像这样:
int somevar __attribute__((unused));
Run Code Online (Sandbox Code Playgroud)
它也适用于未使用的参数警告(-Wunused-parameter)
为了缩短写作时间,我使用了这个宏:
#define _U_ __attribute__((unused))
Run Code Online (Sandbox Code Playgroud)
并声明如下:
int somevar _U_ ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14014 次 |
| 最近记录: |