- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
是否可以在 Objective-C 对象方法参数上使用 __unused 属性宏?我试过将它放在参数声明周围的不同位置,但它要么导致编译错误,要么似乎被忽略(即,编译器在使用 -Wall -Wextra 编译时仍会生成未使用的参数警告)。
有人用过吗?它只是不受 Objective-C 的支持吗?作为引用,我目前使用的是 Apple 的 GCC 4.0.1 版本。
最佳答案
好的,我找到了答案...这似乎是 Apple 的 gcc 4.0 的实现中的一个错误。使用 gcc 4.2 它按预期工作,正确的位置如下:
-(void)someMethod:(id) __unused someParam;
如果有人感兴趣,它会记录在 Objective-C 发行说明中:http://developer.apple.com/releasenotes/Cocoa/RN-ObjectiveC/index.html#//apple_ref/doc/uid/TP40004309-DontLinkElementID_6
请注意,Louis,您的答案会编译,但正如我在问题中所述,它实际上不会执行任何操作或抑制编译器发出的未使用警告。
编辑:我为此向苹果提交了错误报告 rdar://6366051 .
关于objective-c - 在 Objective-C 中使用 GCC __unused 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/285591/
当 NSString * __unused aString 和 NSString __unused * aString 是变量声明时,它们是否等价? - (void)aMethod:(NSString
我曾经看到过宏 __unused 的用法,对此进行了解释 here ,但由于某种原因我现在找不到它的定义位置。将不胜感激的帮助。我需要它用于 ansi C 项目。谢谢。 最佳答案 unused 是 G
使用 -Wunused-parameter 标志,您可以对未使用的参数强制执行 __unused,作为编译器优化。以下代码会导致两个警告: #include int main(int argc, c
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
是否可以在 Objective-C 对象方法参数上使用 __unused 属性宏?我试过将它放在参数声明周围的不同位置,但它要么导致编译错误,要么似乎被忽略(即,编译器在使用 -Wall -Wextr
我刚刚了解了使用 GCC 编译时可以使用的 __unused 标志,我了解的越多,我的问题就越多... 为什么编译时没有警告/错误?我特地告诉编译器我不会使用变量,这似乎很奇怪,然后当我使用它时,一切
我是一名优秀的程序员,十分优秀!