在 Debian 系统上,GCC 支持哪些 C/C++ 标准,主要取决于你安装的 GCC 版本,而不是 Debian 发行版本身。不同 GCC 版本支持的标准如下(以常见 Debian 稳定版为例)。
gcc --version
g++ --version
常见 Debian 版本对应 GCC:
-std=)| 标准 | 参数 | 说明 |
|---|---|---|
| C89 / C90 | -std=c89 / -std=c90 |
最早的 ANSI C |
| C99 | -std=c99 |
常用 |
| C11 | -std=c11 |
现代 C |
| C17 / C18 | -std=c17 / -std=c18 |
修正版 C11 |
| GNU 扩展 | -std=gnu99 / gnu11 |
带 GCC 扩展 |
✅ Debian 上 GCC 8+ 默认通常是 GNU11
| 标准 | 参数 | 说明 |
|---|---|---|
| C++98 | -std=c++98 |
最早标准 |
| C++03 | -std=c++03 |
小修订 |
| C++11 | -std=c++11 |
重大更新 |
| C++14 | -std=c++14 |
|
| C++17 | -std=c++17 |
常用 |
| C++20 | -std=c++20 |
GCC 10+ 支持较好 |
| C++23 | -std=c++23 |
GCC 12+ 实验性 |
| GNU 扩展 | -std=gnu++11 等 |
带 GCC 扩展 |
| GCC 版本 | C | C++ |
|---|---|---|
| GCC 8 | C11 / C17 | C++17 |
| GCC 10 | C17 | C++20 |
| GCC 12 | C17 | C++20 / C++23(部分) |
| GCC 13+ | C17 | C++23 |
gcc -std=c11 main.c
g++ -std=c++17 main.cpp
查看支持的所有标准:
gcc --help=common | grep std
c11 或 gnu11c++17 或 c++20如果你告诉我 Debian 版本或 GCC 版本,我可以给你更精确的支持列表。