#pragma clang diagnostic
首先, #pragma 本质上也是声明,一般常用的功能就是打注释、尤其是分段注释
但是#pragma 另外一个强大的功能就是处理编译器警告,用的时候可能就没上一个
功能用的那么多,在代码中处理警告却是极其高效的方法。
其中 clang diagnostic 便是#pragma 第一个功能常用的命令,步骤如下
1
2
3
4
|
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-相关命令"
// 你自己的代码
#pragma clang diagnostic pop
|
常见用法
1.方法弃用告警
1
2
3
4
5
6
|
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[TestFlight setDeviceIdentifier:[[UIDevice currentDevice] uniqueIdentifier]];
#pragma clang diagnostic pop
|
2.不兼容指针类型
1
2
3
4
|
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
//
#pragma clang diagnostic pop
|
3.循环引用
1
2
3
4
5
6
7
|
// completionBlock is manually nilled out in AFURLConnectionOperation to break the retain cycle.
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-retain-cycles"
self.completionBlock = ^ {
...
};
#pragma clang diagnostic pop
|
4.未使用变量
1
2
3
4
|
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
int a;
#pragma clang diagnostic pop
|
#pargma 用法详情:
http://nshipster.cn/pragma/
http://nshipster.com/clang-diagnostics/
相关的命令列表
http://fuckingclangwarnings.com/
进阶:http://clang.llvm.org/docs/UsersManual.html#diagnostics_pragmas
#pragma clang diagnostic相关推荐
- [IOS]clang diagnostic、Wprotocol ..
2019独角兽企业重金招聘Python工程师标准>>> 首先, #pragma 本质上也是声明,一般常用的功能就是打注释.尤其是分段注释 但是#pragma 另外一个强大的功能就是处 ...
- clang diagnostic用例
clang命令格式大致如下: #pragma clang diagnostic push #pragma clang diagnostic ignored "-相关命令"//需要操 ...
- linux c 编译器处理警告、错误 #pragma GCC diagnostic ignored -Wunused
各个层次的gcc警告 从上到下覆盖 变量(代码)级:指定某个变量警告 int a __attribute__ ((unused)); 指定该变量为"未使用的".即使这个变量没有被使 ...
- 聊聊 #pragma 和 // MARK:
我去,就这两个东西还要讲?是OC或Swift开发人员都知道是怎么回事好吗?不就是用来标记和分组代码的吗?难道还有别的装逼技能? 当然,其实问大部分人说这两个是什么作用,或者是除了这两个还知道什么的情况 ...
- 深入剖析 iOS 编译 Clang LLVM(编译流程)
2019独角兽企业重金招聘Python工程师标准>>> 前言 iOS 开发中 Objective-C 和 Swift 都用的是 Clang / LLVM 来编译的.LLVM是一个模块 ...
- iOS编程 手动忽略clang编译器警告
iOS编程 手动忽略clang编译器警告 在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak.循环引用.不能运行之类的警告. 有代码洁癖的孩子们非常想消除他们, 今天就让我们来一次Fuc ...
- 深入剖析 iOS 编译 Clang / LLVM
前言 2000年,伊利诺伊大学厄巴纳-香槟分校(University of Illinois at Urbana-Champaign 简称UIUC)这所享有世界声望的一流公立研究型大学的 Chris ...
- 转载iOS开发中常见的警告及错误
iOS警告收录及科学快速的消除方法 前言:现在你维护的项目有多少警告?看着几百条警告觉得心里烦么?你真的觉得警告又不是错误可以完全不管么? 如果你也被这些问题困惑,可以和我一起进行下面的操作.其实 ...
- xcode 消除警告
项目中引用大量的第三方代码时,这些代码很复杂,不要轻易去改动它,如果编译产生很多警告,该如何消除呢? 1. 最直接.最一劳永逸.最安全的方式,直接找到警告的那段代码,改为不警告.这个方式最安全. 可是 ...
最新文章
- H3C——BGP联盟配置
- snort inline模式和passive模式区别
- 前后端分离之Vue(三)爬过得那些坑
- linux 进程地址空间的一步步探究
- 新工具上线!只需2步助你轻松学爬虫!
- 深入浅出WPF之Binding的使用(一)
- Spring配置项context:annotation-config/解释说明
- mtk android工具包,MTK Android software Tools工具的说明
- Linux之time命令
- excel mmult matlab,如何用excle计算矩阵/在EXCEL中如何计算矩阵行列式
- 第五模块 常用邮件沟通场景(1):求职信
- Android 应用程序无响应(ANR)报错原因
- Excel中对合并单元格后不同行数对应数据处理的三种特技
- 一个小妙招能让你在服装上省下好多rmb
- 教你制作漂亮的Word项目符号。
- python怎么转义_python怎么转义
- UID、PID、PPID是什么?
- 关于sql连接语句中的Integrated Security=SSPI
- mercury MW300R(mt7620n)GPIO研究
- 应用交付为什么会受到用户青睐