0. 前言

  • 我挺久没碰 C,不想就这么忘了,最近重温了一些相关知识

1. C 语言的几种“方言”

  • 简单地说,有这么几种常见的
年份 名称
1983 ANSI C
1987 C87
1999 C99
2011 C11
  • C 语言的全国二级等级考试采用的标准是 ANSI C (如果没变的话)

2. gcc 编译 C 默认使用哪个标准

  • 查了一些资料,说法不一,大概因为大家使用的是不同版本的 gcc

2.1 我使用的 gcc 版本

$ gcc -v
... ...
Target: x86_64-w64-mingw32
... ...
Thread model: win32
gcc version 8.1.0 (x86_64-win32-seh-rev0, Built by MinGW-W64 project)

2.2 网上的一种方法

  • 我想到之前装过 Cygwin,就打开试了这条代码
$ gcc -posix -E -dM - </dev/null
... ...
#define __STDC_VERSION__ 201112L
... ...
  • 结果很长,有用的是这句,但只能看出来是 2011 的版本

2.3 想到了一个 Linux 的命令:man

  • 同样是在 Win10 的环境打开 Cygwin
$ man gcc
...
gnu11
gnu1x
GNU dialect of ISO C11. This is the default for C code. The name gnu1x is deprecated.
...
  • 我截了张图

  • 总算得到了结果:gcc 8.1.0 编译 C 所使用的默认标准为 gnu11

3. gcc 编译 C++ 默认使用哪个标准

  • 直接上图

  • 结论:gcc 8.1.0 编译 C++ 所使用的默认标准为 gnu++14

004 gcc 编译 C/C++ 默认使用哪个标准的更多相关文章

  1. GCC编译过程

    以下是C程序一般的编译过程: gcc的编译流程分为四个步骤,分别为:· 预处理(Pre-Processing) 对C语言进行预处理,生成*.i文件.· 编译(Compiling) 将上一步生成的*.i ...

  2. GCC 编译优化指南(转)

    GCC 编译优化指南(转) http://www.jinbuguo.com/linux/optimize_guide.html 作者:金步国 版权声明 本文作者是一位开源理念的坚定支持者,所以本文虽然 ...

  3. GCC编译C代码

    C程序的编译过程       常用文件的后缀名: gcc编译c代码 1.gcc 常用编译选项: 2.gcc编译方法 testc.c: #include <stdio.h> int main ...

  4. gcc编译的四个阶段:预处理,编译,汇编,链接

    1:gcc编译的四个阶段:预处理,编译,汇编,链接 #vi file.c #gcc -E file.c -o file.i//-E查看且预处理后停止编译,-o生成目标文件,-i表示已预处理 #gcc  ...

  5. Linux gcc 编译日记

    gcc 编译器是众多编译器组合入口,例如在编译 .cpp 文件时,使用c++ 编译器,编译.c 文件时,使用c编译器. 在编译c++程序时, 库文件与头文件可通过 -L[dir] 指定库目录 , -l ...

  6. C++常见gcc编译链接错误解决方法

    除非明确说明,本文内容仅针对x86/x86_64的Linux开发环境,有朋友说baidu不到,开个贴记录一下(加粗字体是关键词): 用“-Wl,-Bstatic”指定链接静态库,使用“-Wl,-Bdy ...

  7. GCC 编译详解

    GNU CC(简称为Gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C.C++和Object C等语言编写的程序.Gcc不仅功能强大,而且可以编译如C.C++.Object C.Jav ...

  8. gcc编译, gdb调试, makefile写法

    //test.c: #include <stdio.h> int main(void) { printf("hello world!"); return 0; } == ...

  9. gcc编译代码报错及编译方式

    一.error: 'for' loop initial declarations are only allowed in C99 mode 前段时间写了一个小C程序,放在linux下用gcc编译出错, ...

随机推荐

  1. Ionic4 & Cordova 打包Android,含签名

    IOS打包必须在Mac环境,以下讲述安卓打包并签名的过程,若是不签名,那么APP不能在手机上安装. 1.添加对应的android框架 ionic cordova prepare android 1)修 ...

  2. C++ 遍历循环表达示 auto, auto&, auto&&

    for(auto x : range) 创建拷贝,无法修改range中的元素 for(auto& x : range) 可以修改range中的元素,但一般用以下这种 for(auto& ...

  3. 【NOIP2016提高A组模拟8.17】(雅礼联考day1)Value

    题目 分析 易证,最优的答案一定是按\(w_i\)从小到大放. 我们考虑dp, 先将w从小到大排个序,再设\(f_{i,j}\)表示当前做到第i个物品,已选择了j个物品的最大值.转移就是\[f_{i, ...

  4. scipy.sparse 稀疏矩阵

    from 博客园(华夏35度)http://www.cnblogs.com/zhangchaoyang 作者:Orisun 本文主要围绕scipy中的稀疏矩阵展开,也会介绍几种scipy之外的稀疏矩阵 ...

  5. Python 函数Ⅱ

    以上代码中,[1,2,3] 是 List 类型,"Runoob" 是 String 类型,而变量 a 是没有类型,她仅仅是一个对象的引用(一个指针),可以是 List 类型对象,也 ...

  6. 怎样将shp文件的坐标点导出来?

    方法一: 1.将线矢量转化为点矢量 具体操作步骤如下: (1)arctoolbox\Data Management tools\Features\双击Feature Vertices to point ...

  7. 使用jquery给html标签加点击事件

    //直接给所有img标签绑定click事件 $("img").click(function(){ alert('你点击了图片'); }) //使用bind方法绑定click事件 $ ...

  8. JavaScript动态创建script标签并执行js代码

    <script> //创建一个script标签 function loadScriptString(code) { var script = document.createElement( ...

  9. SecureRandom的坑

    之前写随机数的时候一直用SecureRandom.getInstanceStrong()方法生成SecureRandom实例,进而调用其各种next方法.突然有一次,发现next方法卡住了, 每一次调 ...

  10. Linux下cs简单通讯(socket)

    Server: #include<iostream> #include<sys/types.h> #include<sys/socket.h> #include&l ...