当前位置:  开发笔记 > 编程语言 > 正文

GCC选项执行Ansi C标准检查?

如何解决《GCC选项执行AnsiC标准检查?》经验,为你挑选了2个好方法。

我应该使用哪些gcc选项来强制执行A​​NSI C(C99)警告/错误?gcc(GCC)3.4.2(mingw-special)

我正在使用:gcc -pedantic -ansi -std = c99这是正确的吗?



1> James McNell..:

-ansi旗帜与-std=c89旗帜同义.

只需使用-std=c99-pedantic应该足够了.

如有疑问,您可以随时参考GCC文档.从GCC 3.4.2开始,要阅读的章节是2 - GCC支持的语言标准.



2> AnT..:

这是一个老问题,但我只是想补充一些额外的分数.

首先,无论您向GCC提供的通用命令行开关集合如何,目前似乎不可能使GCC将所有约束违规报告为"错误",而将其他所有约束违规报告为"警告".从C语言的角度来看,GCC报告为"警告"的一些诊断消息实际上是约束违规(即"错误"),但是没有办法强制GCC识别该事实并生成"错误"诊断.很可能通过微调单个警告类型可以实现更精确的分离,但我不确定GCC设置是否提供足够的粒度来实现良好匹配.

其次,GCC提供-pedantic-errors可用于代替plain的选项-pedantic,其旨在使诊断消息的更精确(如上所述)分类成"错误"和"警告".但它仍然不完美.

PS语言规范不要求/定义将诊断消息分离为"错误"和"警告",但实际上许多程序员期望约束违规被报告为"错误".当你在提问中提到"强制执行警告/错误"时,我认为你可能会有类似的意思.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有