一起talk GCC吧(第四回:GCC警告)

各位看官们,大家好,上一回咱们说的是GCC编译相关的内容。这一回咱们说说如何使用GCC发出警告,闲

话休提,言归正转。让我们一起talk GCC吧!

看官们,GCC有编译警告的功能。什么是编译警告?台下有看官提问了。所谓的编译警告就是编译器在编

译过程中把一些不符合编译规则但是又符合编译语法的内容给予警告。我用一个现实生活中的例子给大家

做个比喻:大家都看过足球比赛吧,足球比赛的裁判手里拿着拿着黄色和红色两种颜色的牌。比赛中球员

们违反比赛规则的事情经常发生,如果球员违反的规则不会给比赛带来严重后果,那么裁判会给球员出示

黄牌。如果球员违反的规则会给比赛带来严重后果,那么裁判会给球员出示红牌。足球比赛中的黄牌就好

比GCC中的编译警告,红牌就好比GCC中的编译错误。GCC发出编译警告,但是还可以继续编译。GCC发出

编译错误,那么它就会停止编译。

在默认情况下,GCC会开启编译警告功能,不过只是包含一些基本的警告的信息,我们可以通过GCC的选项

让GCC在编译过程中发出更多更多的编译警告。

选项Wall可以让GCC发出更多的警告。例子:gcc -Wall file.c -o f.o

选项Werror可以让GCC将警告看作是错误,选项wall虽然能让GCC发出更多的警告,但是不会让GCC停止

编译。选项werror发生警告时会让GCC停止编译。

看官们,警告信息,也是有用的信息,因为警告中可能会有一些潜在的错误。所以使用GCC时尽量打开警

告信息,并且注意编译时产生的警告信息,把它们修改好,直到没有产生编译警告为止。

看官们,关于GCC的内容,今天咱们就说这些。欲知后事如何,且听下回分解!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 02:53:27

一起talk GCC吧(第四回:GCC警告)的相关文章

gcc编译的四个阶段:预处理,编译,汇编,链接

1:gcc编译的四个阶段:预处理,编译,汇编,链接 #vi file.c #gcc -E file.c -o file.i//-E查看且预处理后停止编译,-o生成目标文件,-i表示已预处理 #gcc -S file.i -o file.s//-S编译到汇编而不进行汇编和链接 #gcc -c file.s -o file.o//-c编译到目标代码 #gcc file.o -o file//-o 文件输出到文件 # gcc -static file.c -o file//-static禁止使用动态库

gcc或clang中消除特定警告的方法

一般在编译代码时会有相当多的警告信息,尤其当我们使用了-Wall选项的时候.-Wall绝不是像其字面意思一样打开全部警告.只是它打开的警告也相当多了.对于一些我们已知"无害"但仍然打印出来挤占可怜的控制台空间的警告,我们当然能够将其"屏蔽"掉. 就拿下面代码来说: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <unistd.h>

第四回:星夜急返桑梓地 浊泪再洒旧书院[林大帅作品连载]

第四回:星夜急返桑梓地 浊泪再洒旧书院 诗曰:      夏雨送别梦乍醒,一朝重返绪难平,      旧院门锁石头路,咫尺两心忘多情.      却说林二送文会学妹一干人等起身之后,便返眼科大楼.这午间伙计,先生回的回,睡的睡,不似平日里熙攘.林二若在平日里,见那几位朝气,定会吟上几句.本来一般读书人,虽是流寓鹭岛,这限韵做赋的功夫,是不肯丢掉,况较当日求学西北,还略有长进呢!果然,在拭了拭头发,见这眼科楼外,车水马龙.忽忆起前朝小曲<离别的车展>,这音律靡靡,歌声怨绝, 再看那门外云集辇毂,

JVM【第十四回】:【回收方法区】

很多人认为方法区(或者HotSpot虚拟机中的永久代)是没有垃圾收集的,Java虚拟机规范中确实说过可以不要求虚拟机在方法区实现垃圾手机,而且在方法区进行垃圾收集的"性价比"一般比较低:在堆中,尤其是在新生代中,常规应用进行一次垃圾收集一般可以回收70%~90%的空间,而永久代的垃圾收集效率远低于此. 永久代的垃圾收集主要回收两部分内容:废弃常量和无用的类.回收废弃常量与回收Java堆中的对象非常类似.以常量池中字面量的回收为例,假如一个字符串"abc"已经进入了常

自了法师全集 | 无量寿经科注第四回学习班分享三十篇

释自了法师 净土指归 1月28日 南无阿弥陀佛 欢迎点击上方关注“净土指归” 自了法师 无量寿经科注第四回学习班分享三十篇全集 目录 生死心不切,若真为生死之心不发,一切开示皆为戏论 凡修净业,以决志求生西方为本 佛一边念,生死爱根一边长 重新认识净土法门 时时作临终想 念佛法门,首为凡夫 常念不绝,则得道捷 日暮途远 摄耳谛听 历代祖师示真信切愿 是心是佛,是心作佛 印光大师述<无量寿经>缘起 都摄六根,净念相继 欲报亲恩唯念佛 ——浅谈祭祖最重要的内涵 不信佛.不信佛力 ——从占察忏现象引

GCC 内存对其选项、警告、其他方式对其

*** gcc 对其选项 [-fpack-struct] gcc -fpack-struct[=n] 该编译器选项解决了结构中字节对齐问题. -fpack-struct将所有结构成员无缝隙地压缩在一起.因为它使代码程序效率大大降低,且结构成员的偏移量与系统库不相符,这么做有时可能导致寻址错误,所以一般不使用这个选项. 原文: -fpack-struct[=n] Without a value specified, pack all structure members together witho

四种GCC内置位运算函数

int __builtin_ffs (unsigned int x) 返回x的最后一位1的是从后向前第几位,比方7368(1110011001000)返回4. int __builtin_clz (unsigned int x) 返回前导的0的个数. int __builtin_ctz (unsigned int x) 返回后面的0个个数,和__builtin_clz相对. int __builtin_popcount (unsigned int x) 返回二进制表示中1的个数. int __b

GCC学习 (四)如何编写makefile

接上一篇 makefile嵌套执行 要执行另外一个makefile文件,若该文件在子目录下,可以这样执行: ---- 伪目标: $(MAKE) -C subdir ---- $(MAKE) -C 可以用来执行subdir目录下的makefile 变量传递 如果在父makefile中已经定义了一个变量,要传递到子makefile里面,需要使用export 关键字 ---- export 变量 ---- 要传递所有变量时,可以不写变量 宏定义 define run-yacc yacc $(first

一起talk C栗子吧(第三十四回:C语言实例--巧用溢出计算最值)

各位看官们,大家好,上一回中咱们说的是巧用移位的例子,这一回咱们说的例子是:巧用溢出计算最值. 闲话休提,言归正转.让我们一起talk C栗子吧! 大家都知道,程序中的变量都有一个取值范围,这个范围也计算机和编译器都有关系.我们举个实际的例 子进行说明:在32位的计算机上,如果使用4个字节存储int类型的变量也就是说使用了32位的存储空间. 这时int类型变量的取值范围是:负2的32次方到正2的32次方-1,具体的数值是-2147483648到2147483647. 如果把不在这个范围内的数值赋