zoukankan      html  css  js  c++  java
  • #pragma 处理警告 clang diagnostic 的使用

    首先#pragma在本质上是声明,常用的功能就是注释,尤其是给Code分段注释;而且它还有另一个强大的功能是处理编译器警告,但却没有上一个功能用的那么多。

    clang diagnostic 是#pragma 第一个常用命令:

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-相关命令"
        // 你自己的代码
    #pragma clang diagnostic pop

    常见的用法

    1. 方法弃用告警

    #pragma clang diagnostic push   
    #pragma clang diagnostic ignored "-Wincompatible-pointer-types"  
       //  
    #pragma clang diagnostic pop

    2. 不兼容指针类型

    #pragma clang diagnostic push   
    #pragma clang diagnostic ignored "-Wincompatible-pointer-types"  
       //  
    #pragma clang diagnostic pop

    3. 循环引用

    // 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. 未使用变量

    #pragma clang diagnostic push   
    #pragma clang diagnostic ignored "-Wunused-variable"  
        int a;   
    #pragma clang diagnostic pop

    5. 未使用default

    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wcovered-switch-default"
    //    switch (style) {
    //        case UITableViewCellStyleDefault:
    //        case UITableViewCellStyleValue1:
    //        case UITableViewCellStyleValue2:
    //        case UITableViewCellStyleSubtitle:
    //            // ...
    //        default:
    //            return;
    //    }
    #pragma clang diagnostic pop
     

    参考链接:

    1. http://nshipster.cn/pragma/
    2. http://nshipster.com/clang-diagnostics/
    3. http://fuckingclangwarnings.com/
  • 相关阅读:
    grid 布局
    数组对象
    定义换页时表现
    判断一个对象是否为空
    内存管理 内存泄漏
    arguments对象
    String类型
    对象 实例
    iOS 之 UIWebView
    iOS 之 内嵌网页
  • 原文地址:https://www.cnblogs.com/lurenq/p/7709731.html
Copyright © 2011-2022 走看看