
检测 gcc 是否支持 C99 标准的方法
发布日期:2021-05-14 08:57:14
浏览次数:13
分类:精选文章
本文共 1360 字,大约阅读时间需要 4 分钟。
使用GCC编译C99程序的正确方法
有时开发者可能会对语言标准的支持和编译选项感到困惑,尤其是对于像C99这样的现代语言。以下一步步说明如何验证GCC是否支持C99,并正确编译C99程序。
1. 安装及准备环境
确保你的开发环境已经安装好了GCC和相关工具链。常见的步骤是通过包管理器安装:
sudo apt-get update && sudo apt-get install -y gcc
安装完成后,应检查编译器版本:
gcc --version
2. 编写C99程序
创建一个新文件c99.c
,内容如下:
#include#define __USE_GNU"';" href="https://www.gnu.org/software/gcc/" "int main() { #ifdef __STDC__ printf("standard C\n"); #endif #ifdef __STDC_VERSION__ printf("C99 support is enabled\n"); printf("Version: %ld\n", __STDC_VERSION__); #endif return 0;}
3. 编译命令
编译C99程序需要使用GCC的选项 -std=c99
。具体命令如下:
gcc -std=c99 -o c99 c99.c -Wall
这里的 -Wall
用于启用所有预警,这样可以提前发现潜在的问题。
4. 验证编译结果
编译完成后,运行程序:
./c99
在终端会看到以下输出:
standard CC99 support is enabled199901
5. 处理编译警告
在编译时可能会有以下警告:
c99.c:12:21: warning: format specifies type 'int' but the argument has type 'long' [-Wformat]printf("%d\n", __STDC_VERSION__);
这个警告是因为stdio.h
中的printf
函数预期的是long
类型用于格式化,但这里传递的是int
。可以通过以下方式处理:
- 修改为
printf("%ld\n", __STDC_VERSION__)
以符合正确的格式化。 - 或者继续用
printf("%d\n", __STDC_VERSION__)
,但这将触发警告但程序仍能运行。
6. 确认C99支持
为了进一步确认GCC是否真正支持C99,可以查阅官方文档或查看[C99标准](https://www.iso.org/standard/ c%2B99%2Bstandard.txt)的实现情况。
7. 提升编译经验
为了更好地调试和理解编译器行为,可以尝试添加以下选项:
gcc -v -std=c99 -o c99 c99.c -Wall
这会显示详细的编译过程,帮助理解关键点。
总结
通过以上步骤,你可以验证并确认GCC是否支持C99,并正确编译C99程序。保持优化编译选项,并结合反编译器输出文件的信息,可以帮助开发者更高效地解决编译问题。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月18日 12时28分07秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
hibernate正向生成数据库表以及配置——hibernate.cfg.xml
2019-03-11
javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层
2019-03-11
java实现人脸识别源码【含测试效果图】——Dao层(IUserDao)
2019-03-11
使用ueditor实现多图片上传案例——前台数据层(Index.jsp)
2019-03-11
ssm(Spring+Spring mvc+mybatis)——saveDept.jsp
2019-03-11
JavaScript操作BOM对象
2019-03-11
layui二级联动
2019-03-11
SpringCloud分布式服务-我的理解
2019-03-11
解决Chrome播放视频闪屏黑屏无法播放
2019-03-11
Java中final的理解
2019-03-11
Git简单理解与使用
2019-03-11
echarts 基本图表开发小结
2019-03-11
二分查找.基于有序数组的查找方法.704
2019-03-11
制作JS验证码(简易)
2019-03-11
adb通过USB或wifi连接手机
2019-03-11
泛型机制 Generic
2019-03-11