[IOS]clang diagnostic、Wprotocol ..

#pragma clang的使用 文章目录-Wdeprecated-declarations 去除方法弃用告警-Wincompatible-pointer-types 不兼容指针类型-Warc-retain-cycles 循环引用-Wunused-variable 未使用变量-Wcovered-switch-default 未使用default -Wdeprecated-declarations 去除方法弃用告警 #pragma clang diagnostic push #pragma clang diagnostic ignore 阅读详情

 首先, #pragma 本质上也是声明,一般常用的功能就是打注释、尤其是分段注释

但是#pragma 另外一个强大的功能就是处理编译器警告,用的时候可能就没上一个

功能用的那么多,在代码中处理警告却是极其高效的方法。

其中 clang diagnostic 便是#pragma 第一个功能常用的命令,步骤如下

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

常见用法

1.方法弃用告警

    #pragma clang diagnostic push  
      
    #pragma clang diagnostic ignored "-Wdeprecated-declarations"       
    [TestFlight setDeviceIdentifier:[[UIDevice currentDevice] uniqueIdentifier]];  
      
    #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  


#pargma 用法详情:

http://nshipster.cn/pragma/

http://nshipster.com/clang-diagnostics/

相关的命令列表

http://fuckingclangwarnings.com/


进阶:

http://clang.llvm.org/docs/UsersManual.html#diagnostics_pragmas



2021-03-08 使用SPDK部署NVMe over TCP NVMe-oF Target入门指南 SPDK NVMe over Fabrics Target是一个用户空间应用程序,通过以太网,Infiniband或光纤通道等结构呈现块设备,SPDK目前支持RDMA和TCP传输。 本文将在已经编译好SPDK的基础上演示如何使用SPDK搭建NVMe over TCP,前提是您已经将一块NVMe硬盘挂载到linux系统中。 如果您想获取有关SPDK更详细的信息,请参考 官方文档。 演示过程的Host主机的ip地址是192.168.0.21,Target主机的ip地址是19 阅读详情

相关推荐

GEO数据库数据下载方法总结

#GEO数据下载 GEO是生信分析经常用到的数据库。经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的。 ##方法一:直接从浏览器中下载 以数据集GSE1001为例, 可以直接点击“Series Matrix Files”获取该样本txt格式的表达谱数据,一般我们认为这种处理过的表达谱数据是没有问题的,当然,具体情况具体分析。 打开下载的文件可以看到许多“#”开头的行,这些是注释信息,一般关注这些注释信息中的“data pr

sakoko_的博客 4万+

学习笔记 #pragma GCC diagnostic push 与 #pragma GCC diagnostic pop 的使用

#pragma GCC diagnostic push与#pragma GCC diagnostic pop的使用 在GCC下,#pragma GCC diagnostic push用于记录当前的诊断状态,#pragma GCC diagnostic pop用于恢复诊断状态。 使用示例如下: #include <stdio.h> /************************************************************************/ //记录当前的诊

1万+

【STM32学习】(29)STM32实现595驱动三个数码管(标准库和HAL库实现)

我选用的单片机型号为:STM32F103系列 74LS595是一个串转并行输出的芯片,它能为单片机节省很多的IO口,应用场景广泛。 现要求三个数码管动态显示,常规设计都是并行实现,需要8个IO数据口,然后还需要3个IO片选数码管接口,这样大大占用了IO口,导致连接的外设变少。因此我们引入74LS595芯片。电路设计如下: 只需要三个共阴极数码管与三个595芯片级联即可完成,通过RCLK,SCK,SER三个IO即可完成对数码管的动态控制并显示。电路焊接的实物图如下: 要求完成功能:实现数.

XiaoCaiDaYong的博客 8262

#pragma clang diagnostic

首先, #pragma 本质上也是声明,一般常用的功能就是打注释、尤其是分段注释 但是#pragma 另外一个强大的功能就是处理编译器警告,用的时候可能就没上一个 功能用的那么多,在代码中处理警告却是极其高效的方法。 其中 clang diagnostic 便是#pragma 第一个功能常用的命令,步骤如下 ? 1 2 3

weimibreeze的专栏 1546

计算机视觉之ResNet

RestNet是2015年由微软团队提出的,在当时获得分类任务,目标检测,图像分割第一名。该论文的四位作者何恺明、张祥雨、任少卿和孙剑如今在人工智能领域里都是响当当的名字,当时他们都是微软亚研的一员。实验结果显示,残差网络更容易优化,并且加深网络层数有助于提高正确率。在ImageNet上使用152层的残差网络(VGG net的8倍深度,但残差网络复杂度更低)。对这些网络使用集成方法实现了3.75%的错误率。获得了ILSVRC 2015竞赛的第一名。原文链接这是一篇计算机视觉领域的经典论文。

十年以上架构设计经验,专注于软件架构和人工智能领域,对机器视觉、NLP、音视频等领域都有涉猎 2万+

C# WPF上位机开发(利用tcp/ip网络访问plc)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 c# wpf如果是用来开发非标上位机的,那么和plc的通信肯定是少不了的。而且,大部分plc都支持modbus协议,所以这个时候如果有一个库可以帮助我们和plc设备进行modbus通信,那就非常方便的。目前NuGet下关于modbus的函数库还是有一些的,比如EasyModbus。

嵌入式-老费,一个分享专业嵌入式知识的blog 2528

#pragma GCC diagnostic push介绍

pragma GCC diagnostic push 是 GCC(GNU 编译器集合)中的一条指令,用于保存当前编译器诊断(警告和错误)的状态。在实际使用中,你可以分别针对每种警告使用 #pragma GCC diagnostic ignored 指令,从而在同一段代码中忽略多种不同的警告。你可以在需要忽略警告的代码段上方,通过多次调用 #pragma GCC diagnostic ignored “” 来忽略多个警告。调试和维护: 忽略警告可能掩盖一些潜在的问题,使用时应谨慎,并确保代码的质量和安全。

weixin_42692164的博客 793

AI上推荐 之 协同过滤

㐇

Miracle8070 1万+

#pragma GCC diagnostic push | pop

编译pg_shard时报了一个,是和GCC的特性有关的,cc1: warnings being treated as errors src/ruleutils_94.c:74: error: expected [error|warning|ignored] after ‘#pragma GCC diagnostic’ src/ruleutils_94.c...

weixin_34205826的博客 2368

037、有源钳位反激变换器(ACF)原理

文章摘要 有源钳位反激变换器(ACF)是一种克服常规反激电路漏感能量处理瓶颈的高效解决方案。文章从实际炸机案例切入,指出RCD钳位电路在高压、宽范围、高功率场景下的局限性。ACF通过增加钳位管和钳位电容,将漏感能量回收而非消耗,实现效率提升2-3%、精准电压钳位和更好EMI性能。文章详细解析了ACF四阶段工作过程、关键波形特征,并指出设计陷阱:漏感需保持1%-3%特定范围、钳位电容ESR要求严格、需专用控制IC支持互补驱动。最后给出实用调试建议,强调ACF适用于65W+功率场景,低压验证后再逐步升压的调试方

Jack010169的博客 253

突破边缘AI算力瓶颈:YOLOv12模型剪枝与知识蒸馏联合优化全攻略

这套剪枝-蒸馏联合方案的优势在于其系统性和可靠性。它不是单一的技巧,而是一套完整的工程流程,确保了从研发到部署的无缝衔接。

m0_71589036的博客 218

GCC编译器预处理指令记录本

GCC 预编译指令

fengkongsu的博客 553

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

clang diagnostic用例

clang命令格式大致如下: #pragma clang diagnostic push #pragma clang diagnostic ignored "-相关命令" //需要操作的代码 #pragma clang diagnostic pop 栗子1:怱略警告 UIAlertView *alertView = [[UIAlertView alloc]initWithTitl...

u012160319的专栏 495

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

处理iOS开发中的各种警告

iOS开发中我们会遇到各种警告,包括第三方不再支持更新导致的警告,苹果一些过时方法的警告,其中尤其是ASIHttpRequest的不支持更新导致有很多的警告,所以我在这里做了罗列 Semantic Warnings WarningMessage -WCFString-literal input conversion stopped due to an inpu...

3162

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C/C++中的#pragma预处理指令

pragma是C和C++编译器提供的一种预处理指令(preprocessor directive),用于控制编译器的行为或指示特定的编译器选项。它以#pragma开头,后面跟着不同的命令或参数。#pragma指令在源代码被编译之前由预处理器进行处理。

笔记 2859

clang diagnostic的使用

  使用格式大致如下: #pragma clang diagnostic push #pragma clang diagnostic ignored "-相关命令" //需要操作的代码 #pragma clang diagnostic pop 1 2 3 4 5 6 7 栗子1:忽略弃用的警告⚠️ UIAlertView *alertView = [[U...

sinat_36521092的博客 1112

#pragma clang diagnostic ignored 作用

我们首先要搞清楚的是:作为预处理指令,#pragma 在编译时进行计算。但它并不像如 #ifdef…#endif 之类的宏,#pragma 的使用方式不会改变你的应用运行时的行为。相反的,#pragma 声明主要由 Xcode 用来完成两个主要任务:整理代码和防止编译器警告。我相信大家都用过 #pragma mark来在划分代码模块,使代码更整洁、逻辑更清晰。例如:@implementation V

lvmaker的专栏 2697

Android12之#pragma clang diagnostic ignored总结(一百六十八)

本篇目的:解决Android12编译报错:error: BUILD_COPY_HEADERS is obsolete。:将当前的编译器警告和错误状态推入一个堆栈中,以便后续可以通过pop指令还原。:将之前保存在堆栈中的编译器警告和错误状态还原,恢复到之前的状态。:用于忽略编译器对指定的警告类型的警告信息。#pragma clang diagnostic ignored “-相关命令”// 自己的代码。

Android系统攻城狮 827

扩展clang 之 自定义 pragma 处理

前言: 出于对程序性能影响的考虑,使用LLVM对代码进行混淆时,可能会有这么个需求:对特定的代码段进行混淆。比如在一 个函数内,希望对某一段核心代码进行混淆。这时,你就需要通过某种方式对这段核心代码进行标记,使得你的混淆器能够识别 到某一段的代码需要进行混淆,而其余没有标记的代码段,不进行混淆。本篇文章的主要内容就是介绍如何对clang进行扩展, 使用自定义pragma对代码段进行标记,使...

cwg2552298的博客 3039

clang的Pragma处理

clang中的Pragma处理是建立在

文森的学术之路 1801

g++ 部分代码关闭编译warning信息

作为一个有洁癖的程序员,在编译c++ 项目的时候会去消灭每一个warning。在实际项目中,编译第三库时候可能会不断产生warning信息,这种情况可以使用 diagnostic pragmas 限制选定的代码不产生warning信息。假如我们想忽略某个c++ 源文件中所有-Wenum-compare 类型的warning信息。可以在头文件开始处加入以下#pragma GCC diagnostic

carbon06的博客 2732

#pragma clang diagnostic ignored 忽略警告

在开发过程中,我是比较反感这个⚠️,但是我们的开发离不开它,他能让我们注意一些可能产生错误的地方去修复。在一个阶段完成后,大家都要去处理这个警告的问题,把可能出错的地方修正。在这个过程中,可能会有一些警告,我们能够确定它不会产生影响,并且确认需要这么做的时候。我们就可以使用 #pragma clang diagnostic ignored 来消除警告。 我...

Lea__DongYang的博客 2171

使用Clang作为编译器 —— Clang 中的Diagnostic flags

Clang 中的Diagnostic flags(未完成)1. 介绍2. 诊断标记(Diagnostic flags)2.1 -W2.2 -W#pragma-messages2.3 -W#warnings2.4 -WCFString-literal 本文为译文,点击此处查看原文。 1. 介绍 这个页面列出了 Clang 当前支持的诊断标记。 2. 诊断标记(Diagnostic flags) 2....

梦在哪里的博客 1034

clang diagnostic的简单介绍

今天项目引入了iconfont,然后看的网上的帖子,发现有部分消除警告的代码。对此还不太熟悉。于是查了下。简单罗列几种,对有强迫症的很友好 使用格式: #pragma clang diagnostic push #pragma clang diagnostic ignored "-相关命令" //需要操作的代码 #pragma clang diagnostic pop 常见的种类: //...

ZHFDBK的博客 929

C++ 忽略第三方库的警告

C++ 或者gcc选项如何设置,才能禁用第三方库的警告(比如boost库的警告)。#pragma这种在源代码级别禁用警告的方法不算(这种方法不是我需要的)。如果可以,cmake中如何设置(这个算另外一个问题吧。)。(提问前,我已经google,baidu过了,没有找到有用的文献。)

人无远虑,必有近忧 3189
上一篇: [IOS] initialize VS load
下一篇: [Swift]@UIApplicationMain
skyming
博客等级 码龄15年 249粉丝 175原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值