在 Ubuntu 上,GCC(GNU Compiler Collection)支持多种 C 和 C++ 语言标准,具体取决于你安装的 GCC 版本。下面按语言和标准说明。
-std= 选项)常用 C 标准:
| 标准 | 说明 | 示例 |
|---|---|---|
c89 / c90 |
ANSI C / ISO C 1990 | -std=c89 |
gnu89 |
C89 + GNU 扩展 | -std=gnu89 |
c99 |
ISO C 1999 | -std=c99 |
gnu99 |
C99 + GNU 扩展 | -std=gnu99 |
c11 |
ISO C 2011 | -std=c11 |
gnu11 |
C11 + GNU 扩展 | -std=gnu11 |
c17 / c18 |
ISO C 2017(技术修正) | -std=c17 |
gnu17 |
C17 + GNU 扩展 | -std=gnu17 |
c2x(实验) |
下一代 C 标准 | -std=c2x |
gnu2x |
C2x + GNU 扩展 | -std=gnu2x |
✅ Ubuntu 20.04+ 的 GCC(9+)默认通常是 gnu17(或 gnu11)
查看默认标准:
echo | gcc -E -dM - | grep __STDC_VERSION__
| 标准 | 说明 | 示例 |
|---|---|---|
c++98 |
第一版 ISO C++ | -std=c++98 |
gnu++98 |
C++98 + GNU 扩展 | |
c++03 |
C++98 修正版 | |
c++11 |
现代 C++ 起点 | -std=c++11 |
gnu++11 |
||
c++14 |
-std=c++14 |
|
gnu++14 |
||
c++17 |
当前主流 | -std=c++17 |
gnu++17 |
||
c++20 |
GCC 10+ 较好支持 | -std=c++20 |
gnu++20 |
||
c++23 |
实验(GCC 12+) | -std=c++23 |
gcc --version
g++ --version
gcc --help=target | grep std
或直接尝试:
gcc -std=c17 -dM -E - < /dev/null
| Ubuntu | GCC | 默认 C++ |
|---|---|---|
| 18.04 | 7 | gnu++14 |
| 20.04 | 9 | gnu++14 |
| 22.04 | 11 | gnu++17 |
| 24.04 | 13 | gnu++17 |
✅ 新项目建议:
gcc -std=c17
g++ -std=c++17
如果你告诉我:
我可以给你精确支持列表和编译示例。