004 gcc 编译 C/C++ 默认使用哪个标准
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++ 默认使用哪个标准的更多相关文章
- GCC编译过程
以下是C程序一般的编译过程: gcc的编译流程分为四个步骤,分别为:· 预处理(Pre-Processing) 对C语言进行预处理,生成*.i文件.· 编译(Compiling) 将上一步生成的*.i ...
- GCC 编译优化指南(转)
GCC 编译优化指南(转) http://www.jinbuguo.com/linux/optimize_guide.html 作者:金步国 版权声明 本文作者是一位开源理念的坚定支持者,所以本文虽然 ...
- GCC编译C代码
C程序的编译过程 常用文件的后缀名: gcc编译c代码 1.gcc 常用编译选项: 2.gcc编译方法 testc.c: #include <stdio.h> int main ...
- gcc编译的四个阶段:预处理,编译,汇编,链接
1:gcc编译的四个阶段:预处理,编译,汇编,链接 #vi file.c #gcc -E file.c -o file.i//-E查看且预处理后停止编译,-o生成目标文件,-i表示已预处理 #gcc ...
- Linux gcc 编译日记
gcc 编译器是众多编译器组合入口,例如在编译 .cpp 文件时,使用c++ 编译器,编译.c 文件时,使用c编译器. 在编译c++程序时, 库文件与头文件可通过 -L[dir] 指定库目录 , -l ...
- C++常见gcc编译链接错误解决方法
除非明确说明,本文内容仅针对x86/x86_64的Linux开发环境,有朋友说baidu不到,开个贴记录一下(加粗字体是关键词): 用“-Wl,-Bstatic”指定链接静态库,使用“-Wl,-Bdy ...
- GCC 编译详解
GNU CC(简称为Gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C.C++和Object C等语言编写的程序.Gcc不仅功能强大,而且可以编译如C.C++.Object C.Jav ...
- gcc编译, gdb调试, makefile写法
//test.c: #include <stdio.h> int main(void) { printf("hello world!"); return 0; } == ...
- gcc编译代码报错及编译方式
一.error: 'for' loop initial declarations are only allowed in C99 mode 前段时间写了一个小C程序,放在linux下用gcc编译出错, ...
随机推荐
- Groovy assert 断言抛字出来
- pt-align的用法简要记录
pt-align的用法简要记录 1.pt-align 功能:将其它工具的输出按列对齐用法:pt-align [FILES]如果没有指定文件,则默认读取标准输入的内容. 2.例如: [root@dbte ...
- css-select的三角在不同浏览器的样式是不一样的,所以我们这样解决???
select{ width:57px; height:23px; border:1px solid #e9e9e9; outline: none; appearance: none; -moz-app ...
- toJSON() 方法,将 Date 对象转换为字符串,并格式化为 JSON 数据格式。
JavaScript toJSON() 方法 定义和用法 toJSON() 方法可以将 Date 对象转换为字符串,并格式化为 JSON 数据格式. JSON 数据用同样的格式就像x ISO-8601 ...
- ef复杂模型添加
模型浏览器 函数导入-添加存储过程名称 添加复杂实体.复杂实体可以手动在xml里面创建.在complextype里面
- jetcache:在Spring Boot中怎么玩?
- java web程序上传文件,浏览器显示连接被重置
上传文件时,到13%时浏览器显示连接被重置如图: 参考网上很多方法 比如设置server.xml 的相应大小.时间,然并没有解决问题 connectionTimeout="2000000&q ...
- 程序员心髓:移动应用API设计10大技巧
移动App与基于Web/云服务发生对话是很常见的事情,最简单的可能仅仅只是检索数据,但也可能包含发送数据.用户授权和管理.而这也就验证了为移动应用建立API的重要性,为此,我们特总结了10大移动API ...
- mysqli使用localhost问题
<?php $mysqli = new mysqli('localhost', 'root', '123456', 'mysql'); if ($mysqli->connect_error ...
- JS将页面中表格,导出到Excel中(IE中)
原文地址:http://blog.csdn.net/sinat_15114467/article/details/51098522 var idTmr; function getExplorer() ...