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 网上的一种方法
$ gcc -posix -E -dM - </dev/null
... ...
#define __STDC_VERSION__ 201112L
... ...
- 结果很长,有用的是这句,但只能看出来是 2011 的版本
2.3 想到了一个 Linux 的命令:man
$ 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