gcc -Wall -pedantic -ansi(转载)
2016-02-18 17:03
423 查看
转载自R-G-Y-CQ的新浪博客
对Linux开发人员来讲,GCC给出的警告信息是很有价值的,它们不仅可以帮助程序员写出更加健壮的程序,而且还是跟踪和调试程序的有力工具。建议在用GCC编译源代码时始终带上-Wall选项,养成良好的习惯。
尽管使用了
使用
使用`-ansi'选项的时候,预处理器会预定义一个__STRICT_ANSI__宏.有些头文件 关注此宏,以避免声明某些函数,或者避免定义某些宏,这些函数和宏不被ANSI标准调用;这样就不会干扰在其他地方 使用这些名字的程序了.
-Wall显示所有的警告信息
-Wall选项可以打开所有类型的语法警告,以便于确定程序源代码是否是正确的,并且尽可能实现可移植性。对Linux开发人员来讲,GCC给出的警告信息是很有价值的,它们不仅可以帮助程序员写出更加健壮的程序,而且还是跟踪和调试程序的有力工具。建议在用GCC编译源代码时始终带上-Wall选项,养成良好的习惯。
-pedantic以ANSI/ISO C标准列出的所有警告
当GCC在编译不符合ANSI/ISO C语言标准的源代码时,如果在编译指令中加上了-pedantic选项,那么源程序中使用了扩展语法的地方将产生相应的警告信息。-ansi支持符合ANSI标准的C程序.
这样就会关闭GNU C中某些不兼容ANSI C的特性,例如asm, inline和 typeof关键字,以及诸如unix和vax这些表明当前系统类型的预定义宏.同时开启 不受欢迎和极少使用的ANSI trigraph特性,以及禁止`$'成为标识符的一部分.尽管使用了
-ansi'选项,下面这些可选的关键字, __asm__, __extension__, __inline__和__typeof__仍然有效.你当然不会把 他们用在ANSI C程序中,但可以把他们放在头文件里,因为编译包含这些头文件的程序时,可能会指定-ansi'选项.另外一些预定义宏,如__unix__和__vax__,无论有没有使用 `-ansi'选项,始终有效.
使用
-ansi'选项不会自动拒绝编译非ANSI程序,除非增加-pedantic'选项作为 `-ansi'选项的补充.
使用`-ansi'选项的时候,预处理器会预定义一个__STRICT_ANSI__宏.有些头文件 关注此宏,以避免声明某些函数,或者避免定义某些宏,这些函数和宏不被ANSI标准调用;这样就不会干扰在其他地方 使用这些名字的程序了.
相关文章推荐
- 【小白的CFD之旅】15 四种境界
- hive安装配置及连接JDBC基本操作
- 老码农教你学英语
- 混合三种背包问题c++
- hdu 1510
- 【图形处理】如何将一个平面图形按照角度往z轴扭曲?
- 令人迷惑的 setter 和 getter 和 @property 和@synthesize
- 假设检验的学习和理解
- Missing iOS Distribution signing identity for...
- 在c++中.dll与.lib文件的生成与使用的详细介绍
- iOS警告收录及科学快速的消除方法
- iOS 从Xcode看应用支持横竖屏
- 我们为什么要看《超实用的Node.JS代码段》
- python 字符串连接
- LMS 权值更新法则
- 关于Android中android:marginBottom不起作用以及android:signleLine对文字的影响
- 解决MySQL出现大量unauthenticated user的问题
- JS实现1000以内被3或5整除的数字之和
- mac SVN 搭建
- WebAPI 消息处理器