一般来说 gcc 3.0 以上都是支持 C99 的

但是编译的时候得加上 -std=c99

检测 gcc 是否支持 C99 方法,新建 c99.c 文件,内容如下

#include <stdio.h>

int main(void) {
#ifdef __STDC__
     printf("%s\n", "stardard C");
#endif
#ifdef __STDC_VERSION__
     // 正确输出结果应该是 long 型,
     // 这里本应该用 %ld, 但命令行运行不会返回提示而需要手动运行一次;
     // 故用 %d 让其警告而不用再次运行编译后程序即可查看结果
     printf("%d\n", __STDC_VERSION__);
#endif
     return 0;
}

然后命令行执行:

gcc -std=c99 -o c99 c99.c -Wall

1

终端返回结果如下:

c99.c:12:21: warning: format specifies type 'int' but the argument has type
      'long' [-Wformat]
     printf("%d\n", __STDC_VERSION__);
             ~~     ^~~~~~~~~~~~~~~~
             %ld
<built-in>:327:26: note: expanded from here
#define __STDC_VERSION__ 199901L
                         ^~~~~~~
1 warning generated.

执行 c99 程序返回:

stardard C

199901

检测 gcc 是否支持 C99 标准的方法的更多相关文章

  1. 3种检测页面是否符合amp标准的方法

    AMP的关键优势不仅仅在于它能让你的页面更快,还在于它的快可以被验证.有几种方法可以验证AMP文档,它们都会产生完全相同的结果,选择最适合您的开发风格的方法.除了AMP的有效性,您可能还想确认您的AM ...

  2. gcc支持c99验证

    gcc3.0以上的版本都是支持C99标准的, 但是编译程序的时候需要加上    -std=c9  才可以: 一下程序是验证gcc是否支持c99标准的: #include <stdio.h> ...

  3. Visual Studio2013的C语言编译器对C99标准的支持情况

    Visual Studio2013终于开始比较良好地支持C99特性了.在此之前,如果用C语言写代码的话,变量名都需要放到函数体的前面部分,代码写起来十分别扭. 而Visual Studio2013中的 ...

  4. C89 和 C99 标准比较

    注1: GCC支持C99, 通过 --std=c99 命令行参数开启,如: 代码:gcc --std=c99 test.c    注2:FFMPEG使用的是C99.而VC支持的是C89(不支持C99) ...

  5. GNU C和C99标准中的可变参数宏(variadic macros)

    用可变参数宏(variadic macros)传递可变参数表你可能很熟悉在函数中使用可变参数表,如: void printf(const char* format, …); 直到最近,可变参数表还是只 ...

  6. C99标准的柔性数组 (Flexible Array)

    [什么是柔性数组(Fliexible Array)] 柔性数组在C99中的定义是: 6.7.2.1 Structure and union specifiers As a special case, ...

  7. [转载]哪个版本的gcc才支持c11

    转自:https://blog.csdn.net/haluoluo211/article/details/71141093 哪个版本的gcc才支持c11 2017年05月03日 19:25:43 Fi ...

  8. C语言(C99标准)在结构体的初始化上与C++的区别

    C++中由于有构造函数的概念,所以很多时候初始化工作能够很方便地进行,而且由于C++标准库中有很多实用类(往往是类模板),现代C++能十分容易地编写. 比如现在要构造一个类Object,包含两个字段, ...

  9. C89标准和C99标准C11标准的区别

    转载 C89标准和C99标准C11标准的区别 C99对C89的改变 1.增加restrict指针 C99中增加了公适用于指针的restrict类型修饰符,它是初始访问指针所指对象的惟一途径,因此只有借 ...

随机推荐

  1. mysql 按照配置文件启动

      有时,我们的机器上面装了很多个mysql,但只有一个3306端口,其余的mysql服务器需要重新指定端口.我们需要多个配置文件来启动它们.那么我们怎么通过指定配置文件的方式来启动呢?   例如,按 ...

  2. JRE和JDK的作用和区别

    JVM(Java  Virtual Machine)是一个虚拟的用于执行bytecode字节码的“虚拟计算机”JRE(Java   Runtime  Environment):Java 虚拟机.库函数 ...

  3. Elasticsearch集群搭建笔记(elasticsearch-6.3.0)

    # 检查Java版本 java -version # 安装Elasticsearch,所有节点均安装并解压 wget https://artifacts.elastic.co/downloads/el ...

  4. PAT甲级 进制转换题_C++题解

    进制转换题 PAT (Advanced Level) Practice 进制转换题 目录 <算法笔记> 重点摘要 1015 Reversible Primes (20) 1019 Gene ...

  5. PHP中类成员的访问控制

    类成员访问控制: 1.public 默认的,任何地方都可以访问,类内,类外,子类中 2.protected 受保护的,对外是封闭的,但是类内部和子类可以访问 3.private  私有的,仅限于本类中 ...

  6. wordpress 图片上传时发生了错误,请稍后再试 的解决办法

    前一天网站还是好好的,仅一天过后就显示图片无法上传,百思不得其解 上下百度,大多数帖子提供的解决办法对我都不适用,继续搜,最后发现一篇帖子中提到是wp-config的编码格式问题 想到昨天刚好修改了下 ...

  7. WUSTOJ 1291: 2n皇后问题(Java)

    题目:

  8. Message高级特性

    一.延迟和定时消息投递 1 xml中配置schedulerSupport属性为true 2 每小时都会发生消息被投递10次,延迟1秒开始,每次间隔1秒: TextMessage message = s ...

  9. Educational Codeforces Round 65 (Rated for Div. 2)

    A:签到. #include<bits/stdc++.h> using namespace std; #define ll long long #define inf 1000000010 ...

  10. MQTTnet 3.0.5学习笔记

    段时间在使用MQTTnet,都说这个东西比较好,可是翻了翻网上没有例子给参考一下. 今天算是找到了,给高手的帖子做个宣传吧. 原网址如下:https://blog.csdn.net/chenlu520 ...