常常在一些第三方库中看到作者用以下套路处理编译器警告:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "xxxxxx"
/* code */
#pragma clang diagnostic pop
这个也是pragma的一个较常用的用法。也很好理解,push一个编译器特殊处理的方法,指定方法的命令,具体的code,处理完后pop掉给特殊处理的方法,恢复原来编译器默认的处理方法。
- 其中以上"xxxxxx"是"命令"字符串。
- 以下简单罗列几个常用的命令
"-Warc-performSelector-leaks" 忽略performselector可能造成内存泄漏的警告
"-Wreceiver-is-weak" 忽略调用者接收者是weak属性的警告
"-Wunused-variable" 忽略变量未使用的警告
"-Wdeprecated-declarations" 忽略方法弃用的警告
"-Warc-retain-cycles" 忽略循环引用的警告
"-Wincompatible-pointer-types" 忽略指针不兼容的警告
- 其他的命令可以参考链接: 命令列表
网友评论