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