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

news2024/10/7 14:24:06

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:解决Android12编译报错:error: BUILD_COPY_HEADERS is obsolete。

2.`#pragma clang diagnostic push、#pragma clang diagnostic pop、#pragma clang diagnostic ignored "-Wconversion"指令介绍

  1. #pragma clang diagnostic push:将当前的编译器警告和错误状态推入一个堆栈中,以便后续可以通过pop指令还原。

  2. #pragma clang diagnostic pop:将之前保存在堆栈中的编译器警告和错误状态还原,恢复到之前的状态。

  3. #pragma clang diagnostic ignored "-Wconversion":用于忽略编译器对指定的警告类型的警告信息。

3.忽略警告语法介绍

1.忽略警告语法通用语法

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

2.可以忽略的警告

1.方法弃用警告 “-Wdeprecated-declarations”
2.不兼容指针类型 “-Wincompatible-pointer-types”
3.循环引用警告 “-Warc-retain-cycles”
4.未使用变量警告 “-Wunused-variable”
5.已废弃属性或方法警告"-Wdeprecated-declarations"

4.代码实例

1.忽略隐式类型转换警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wconversion"

#include <iostream>

int main() {
    int x = 10;
    short y = x;  // 隐式类型转换,编译器会发出警告

    std::cout << y << std::endl;

    return 0;
}

#pragma clang diagnostic pop

第一步:#pragma clang diagnostic push将编译器警告状态保存在堆栈中,
第二步:使用#pragma clang diagnostic ignored "-Wconversion"指令忽略了编译器对隐式类型转换的警告。
第三步:使用#pragma clang diagnostic pop恢复了之前的编译器警告状态。

2.忽略未使用函数的警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-function"

#include <iostream>

void unusedFunction() {
    std::cout << "This function is unused" << std::endl;
}

int main() {
    std::cout << "Hello, world!" << std::endl;

    return 0;
}

#pragma clang diagnostic pop

3.忽略未初始化变量的警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wuninitialized"

#include <iostream>

int main() {
    int x;
    std::cout << x << std::endl; // 未初始化变量,会引起警告

    return 0;
}

#pragma clang diagnostic pop

4.忽略数组越界的警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warray-bounds"

#include <iostream>

int main() {
    int arr[3] = {1, 2, 3};
    std::cout << arr[5] << std::endl; // 越界访问数组,会引起警告

    return 0;
}

#pragma clang diagnostic pop

5.忽略未使用参数的警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-parameter"

#include <iostream>

void unusedParameter(int x) {
    std::cout << "This parameter is unused" << std::endl;
}

int main() {
    unusedParameter(10);

    return 0;
}

#pragma clang diagnostic pop

6.忽略未定义行为的警告(例如除以零)

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdiv-by-zero"

#include <iostream>

int main() {
    int x = 10;
    int y = 0;
    int z = x / y; // 除以零,会引起未定义行为的警告

    std::cout << z << std::endl;

    return 0;
}

#pragma clang diagnostic pop

7.忽略常量表达式溢出的警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wconstant-conversion"

#include <iostream>

int main() {
    const int x = 2147483647; // INT_MAX
    const int y = x + x; // 常量表达式溢出,会引起警告

    std::cout << y << std::endl;

    return 0;
}

#pragma clang diagnostic pop

8.忽略未使用的私有成员函数的警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"

#include <iostream>

class MyClass {
private:
    int unused;

    void unusedFunction() {
        std::cout << "This private function is unused" << std::endl;
    }
};

int main() {
    MyClass obj;

    return 0;
}

#pragma clang diagnostic pop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1138213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

性能卓越 全栈自主 HashData与华为金融数仓一体机联合方案全面解读

​金融业作为数据覆盖广泛、服务社会主体众多、应用场景丰富的关键行业&#xff0c;一直以对数据基础设施的高要求而著称&#xff0c;也是检验产品与方案成熟度的试金石。经过长期的服务与实践&#xff0c;HashData已形成面向金融核心业务的成熟数仓产品。 凭借对金融场景的深…

基于Python Django 的微博舆论、微博情感分析可视化系统(V2.0)

文章目录 1 简介2 意义3 技术栈Django 4 效果图微博首页情感分析关键词分析热门评论舆情预测 5 推荐阅读 1 简介 基于Python的微博舆论分析&#xff0c;微博情感分析可视化系统&#xff0c;项目后端分爬虫模块、数据分析模块、数据存储模块、业务逻辑模块组成。 Python基于微博…

计算文本相似度,输出相似度最高的n个

TF-IDF import jieba import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity# 示例句子列表 sentences ["今天天气真好&#xff0c;阳光明媚。","关键字匹配是一种常见的…

什么是虚拟主播?

随着科技的不断发展&#xff0c;人工智能技术已经逐渐渗透到各个行业&#xff0c;为企业带来了前所未有的变革。在视频制作领域&#xff0c;美摄作为一家领先的智能视频技术提供商&#xff0c;针对企业需求推出了一款创新的虚拟主播解决方案&#xff0c;旨在帮助企业实现高效、…

「滚雪球学Java」:常用类(章节汇总)

&#x1f3c6;本文收录于「滚雪球学Java」专栏&#xff0c;专业攻坚指数级提升&#xff0c;助你一臂之力&#xff0c;带你早日登顶&#x1f680;&#xff0c;欢迎大家关注&&收藏&#xff01;持续更新中&#xff0c;up&#xff01;up&#xff01;up&#xff01;&#xf…

机器学习实验六:决策树-海洋生物例子

#创建数据集 import numpy as np import pandas as pd from sklearn import tree from sklearn.tree import DecisionTreeClassifier import graphviz def createDataSet():row_data {no surfacing:[1,1,1,0,0],flippers:[1,1,0,1,1],fish:[yes,yes,no,no,no]}dataSet pd.Dat…

轻松搭建Linux宝塔面板并实现公网访问Discuz论坛,让您的论坛更具吸引力

文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board&#xff08;以下简称 Discuz!&#xff09;是一套通用的社区论坛软件系统&#xff0c;用户可以在不需要任何编程的基础上&a…

js中的Formdata数据结构

这里写目录标题 一、基本概念二、常用方法1.append(name, value)、set(name, value)2.get()、getAll()3.has(name)4.delete(name)5.keys(),values(),entries() 三、其他细节1.for of遍历2.转为对象3.结合 URLSearchParams 转为queryString 一、基本概念 FormData 提供了一种表…

推送内容有误怎么办?MobPush撤回/取消推送为您排忧解难

消息推送已成为深度连接APP和用户的利器&#xff0c;对推送内容的准确性和时效性的要求也更为严格&#xff0c;倘若推送的内容出现错误&#xff0c;或推送的内容已经失去了时效性&#xff0c;此时又该怎么办呢&#xff1f;别急&#xff0c;近日MobPush全新上线了取消推送和撤回…

Lightroom学习之路

基础知识 常用快捷键 双击修改图片下右边布局的属性&#xff0c;快速回到初始值 B站学习笔记 1、导入到图库为图片标星级&#xff0c;后期优先处理星级高的图片 2、修改照片-基础-白平衡有吸管吸颜色会自动平衡照片颜色 3、直方图左右上角三角形&#xff0c;选中后照片会显示…

04 # 手写 apply

apply apply 的作用跟 call 的作用是一样的&#xff0c;只不过传递的参数是以数组的形式 手写 apply <script>Function.prototype.kaimoApply function (content, args) {// 没有东西指向 window&#xff0c;将 content 包装成对象content content ? Object(conten…

LeetCode刷题之分隔链表(图解➕代码)

首先直接进入主题&#xff0c;题目链接&#x1f517;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 源代码在最后&#xff0c;有更优解的朋友欢迎在评论里指导我一番&#xff01; 1.题目分析 通过题目分析得出结论&#xff1a; 1. 将链表分为k个子…

一文拿捏内网穿透利器之frp(反向代理软件相关)

一文拿捏内网穿透利器之frp 一、什么是 frp 1.1 内网穿透 如下图所示, 一般情况下, 公网内的设备都能够被任意一台设备访问到!! 而不同局域网内的设备是相互隔离的, 局域网 A 的设备是无法访问到局域网 B 内的设备 而内网穿透技术, 顾名思义就是能让公网、或者当前局域网外的任…

一个进程最多可以创建多少个线程

前言 话不多说&#xff0c;先来张脑图~ linux 虚拟内存知识回顾 虚拟内存空间长啥样 在 Linux 操作系统中&#xff0c;虚拟地址空间的内部又被分为内核空间和用户空间两部分&#xff0c;不同位数的系统&#xff0c;地址空间的范围也不同。 比如最常见的 32 位和 64 位系统&…

操作系统:进程与线程(一)进程与线程的概念及处理机调度算法

一战成硕 2.1 进程与线程2.1.1 进程的概念和特征2.1.2 进程的状态与转换2.1.3 进程的组织2.1.4 进程控制2.1.5 进程的通信2.1.6 线程和多线程模型 2.2 处理机调度2.2.1 调度的概念2.2.2 调度的目标2.2.3 调度的实现2.2.4 典型的调度算法 2.1 进程与线程 2.1.1 进程的概念和特征…

MODBUS-TCP通信客户端如何访问服务器端RS485总线上的从站(SMART PLC梯形图程序)

SMART PLC的 MODBUS-TCP通信请参考下面文章链接: S7-200SMART PLC ModbusTCP通信(多服务器多从站轮询)_matlab sumilink 多个modbustcp读写_RXXW_Dor的博客-CSDN博客文章浏览阅读6.2k次,点赞5次,收藏10次。MBUS_CLIENT作为MODBUS TCP客户端通过S7-200 SMART CPU上的以太网…

若依ruoyi-nbcio如何做一个仿钉钉流程设计器的思考

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 看到有些流程图采用仿钉钉的流程设计&#xff0c;比如下面界面&#xff1a; 这种方式虽然简单&#xff0c…

Python 中的 Pexpect

我们将通过示例介绍Python中的Pexpect。 Python 中的 Pexpect Python 是一种非常流行的语言&#xff0c;用于数据科学和机器学习。 它是一种非常强大的语言&#xff0c;因为 Python 具有可用于不同目的的内置库。 在这篇文章中&#xff0c;我们将研究Python中的pexpect。 Pex…

找不到msvcr90.dll无法继续执行代码怎么解决

msvcr90.dll是Microsoft Visual C 2008 SP1可再发行程序包中的一个动态链接库文件。它包含了用于支持C编程语言的类和函数。动态链接库是一种可重用的代码模块&#xff0c;它可以在多个应用程序之间共享&#xff0c;从而减少代码量并提高开发效率。那么遇到msvcr90.dll丢失怎么…

【计算机网络】从输入URL到页面都显示经历了什么??

文字总结 ① DNS 解析&#xff1a;当用户输入一个网址并按下回车键的时候&#xff0c;浏览器获得一个域名&#xff0c;而在实际通信过程中&#xff0c;我们需要的是一个 IP 地址&#xff0c;因此我们需要先把域名转换成相应 IP 地址。浏览器会首先从缓存中找是否存在域名&…