在 Linux 下的 gcc 或 clang 编译器中调用不同版本的 C 语言标准编译程序以及查看本机默认编译标准的方法

本文详细介绍了如何在gcc和clang编译器下指定不同的C语言编译标准,包括C99、C11等,并提供了查看当前编译器默认支持的编译标准的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=1348

假设我们要编写的 C 语言源代码文件的文件名称是 a.c

则,在 gcc 下指定编译器编译标准的命令为:

gcc -std=c99 a.c //调用 C99 标准
gcc -std=c1x a.c //调用 GCC 接受 C11 之前的草案标准
gcc -std=c11 a.c //调用 C11 标准

clang 编译器与 gcc 编译器用法相同, 如果要使用 clang 编译器, 则将 gcc 替换成 clang 即可.

如果想查看当前使用的 gcc 编译器默认的编译标准, 在 Ubuntu Linux 中可以使用如下命令查看 C 语言的所有预编译宏:

gcc -E -dM - </dev/null

在输出的结果中查看 #define __STDC_VERSION__ 的值, 不同值代表的不同编译标准如下:

#define __STDC_VERSION__ 199901L //C99 标准
#define __STDC_VERSION__ 201112L //C11 标准

输出结果的局部截图如图 1 所示:
图 1 当前编译器默认支持 C11 编译标准图 1 当前编译器默认支持 C11 编译标准

为了更方便查找, 我们也可以结合 grep#define __STDC_VERSION__ 关键字进行过滤, 命令:

gcc -E -dM - </dev/null | grep -e "#define __STDC_VERSION__"

上述命令的运行结果如图 2 所示:
图 2 当前编译器默认支持 C11 编译标准图 2 当前编译器默认支持 C11 编译标准

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值