gcc或clang中消除特定警告的方法
一般在编译代码时会有相当多的警告信息,尤其当我们使用了-Wall选项的时候.-Wall绝不是像其字面意思一样打开所有警告.不过它打开的警告也相当多了.对于一些我们已知"无害"但仍然打印出来挤占可怜的控制台空间的警告,我们当然可以将其"屏蔽"掉.
就拿以下代码来说:
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <unistd.h> int main(void) { long double ld = 10000.2222L; puts("hello world!???(y/n)"); printf("long double type size is %lu %lu\n",sizeof(long double),sizeof ld); return 0; }
其会生成一个所谓的"三字符组符号"使用的警告,假设这正是我们需要的效果,所以我们可以忽略该警告.我们编译一下看看先(无论用gcc还是clang):
gcc:
wisy@wisy-ThinkPad-X61:~/src/c_src$ gcc -Wall -std=c11 -O3 -g0 -s -o x x.c x.c: In function ‘main’: x.c:9:21: warning: trigraph ??( converted to [ [-Wtrigraphs] puts("hello world!???(y/n)"); ^
clang:
wisy@wisy-ThinkPad-X61:~/src/c_src$ clang -Wall -std=c11 -O3 -g0 -s -o x x.c x.c:9:21: warning: trigraph converted to '[' character [-Wtrigraphs] puts("hello world!???(y/n)"); ^ 1 warning generated.
不过在去掉-Wall警告后,可以发现没有任何警告,一切都安静了.但这不是我们想要的,因为可能放过一些真正隐含错误类的警告.大家可以看到警告提示中写明了该警告的类型:-Wtrigraphs.我们只要加上在W后面加上no即可屏蔽该警告,不过要放在Wall选项后面,如果放在前面,仍然会有警告哦.编译器应该是以最后一个"有效"选项为准呀!
wisy@wisy-ThinkPad-X61:~/src/c_src$ gcc -Wall -Wno-trigraphs -std=c11 -O3 -g0 -s -o x x.c
gcc或clang中消除特定警告的方法的更多相关文章
- OSG中找到特定节点的方法
OSG中找到特定节点的方法 转自:http://38288890.blog.163.com/blog/static/19612845320072721549504/ 为了在OSG中找到需要的节点并对节 ...
- OSG中找到特定节点的方法(转)
OSG中找到特定节点的方法 为了在OSG中找到需要的节点并对节点做出相应的操作,可以从NodeVisitor类中继承一个类,NPS的教程 [download id="14"] 阐述 ...
- msvc/gcc:中用#pragma指令关闭特定警告(warning)
在使用一些第三方库或源码的时候,经常会遇到编译时产生warnings情况,这些warning不是我们自己的代码产生的,当然也不好去修改,但每次编译都显示一大堆与自己代码无关的警告也着实看着不爽,更麻烦 ...
- 去掉 Idea 中注入 Mapper 警告的方法
使用 Idea 的时候,自动装配 Mybatis 的 mapper.会一直出现红色波浪线的警告.看着难受.下面提供几种方式 方式一 为 @Autowired 注解设置required = false ...
- 编写合格的C代码(1):通过编译选项将特定警告视为错误
目录 快速设定 向错误的执念开炮,向C编译器开炮 编译警告应当被忽略吗?warning不重要吗? 个人总结的应当视作error的warning 1. 函数没有声明就使用 2. 函数虽然有声明,但是声明 ...
- 转载iOS开发中常见的警告及错误
iOS警告收录及科学快速的消除方法 前言:现在你维护的项目有多少警告?看着几百条警告觉得心里烦么?你真的觉得警告又不是错误可以完全不管么? 如果你也被这些问题困惑,可以和我一起进行下面的操作. ...
- iOS 消除Xcode警告
- undeclared selector #pragma clang diagnostic push #pragma clang diagnostic ignored"-Wundeclar ...
- mysql中,ENCODE警告---Warning Code : 1287
mysql中,ENCODE警告 共 1 行受到影响, 1 个警告 执行耗时 : 0.072 sec传送时间 : 0.001 sec总耗时 : 0.073 sec Warning Code : 1287 ...
- VS禁止特定警告
项目右键-属性-配置属性-C/C++-高级-禁用特定警告-填写警告编号例如4996
随机推荐
- 浅谈Android布局
在前面的博客中,小编介绍了Android的极光推送以及如何实现登录的一个小demo,对于xml布局页面,摆控件这块的内容,小编还不是很熟练,今天小编主要简单总结一下在Android中的布局,学习过An ...
- UNIX网络编程——ICMP报文分析:端口不可达
ICMP的一个规则是,ICMP差错报文必须包括生成该差错报文的数据报IP首部(包含任何选项),还必须至少包括跟在该IP首部后面的前8个字节(包含源端口和目的端口).在我们的例子中,跟在IP首部后面的前 ...
- Chapter 1 Securing Your Server and Network(12):保护链接服务器
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38438363,专题目录:http://blog.csdn.net/dba_huangzj ...
- PA 创建项目
---- 创建项目 DECLARE l_orig_project_id NUMBER := 6; l_prj_num VARCHAR2(240) := 'CXYTEST001'; l_start_da ...
- 【IOS 开发】Object-C 入门 Xcode 环境详解
作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38424965 一. Xcode 环境安装 与 工程创建 1. ...
- Android View事件机制一些事
本文主要讲述: 自己对View事件机制的一些理解 在项目中遇到的一些坑,解决方案 收集了一些View的事件机制问题 事件的分发原理图 对于一个root viewgroup来说,如果接受了一个点击事件, ...
- SwiftyiRate中文说明
SwiftyiRate Github SwiftyiRate Swift语言实现的app内评分,简单易用. Requirements Integration Usage Initialization ...
- 手把手教你打造一个心电图效果View Android自定义View
大家好,看我像不像蘑菇-因为我在学校呆的发霉了. 思而不学则殆 丽丽说得对,我有奇怪的疑问,大都是思而不学造成的,在我书读不够的情况下想太多,大多等于白想,所以革命没成功,同志仍需努力. 好了废话不说 ...
- 文件I/O实践(1) --基础API
什么是I/O 输入/输出是内存和外设之间拷贝数据的过程: 设备->内存: 输入操作 内存->设备: 输出操作 高级I/O: ANSI C提供的标准I/O库函数成为高级I/O, 也称为带缓冲 ...
- adformsctl.sh 与 adformsrvctl.sh, 10.1.2 及10.1.3
参考 http://blog.csdn.net/cai_xingyun/article/details/40393885 , adformsctl.sh 是开启forms oc4j , 根据之后的 ...