C/C++有若干个版本,每个版本通常会引入或删除一些特性,嵌入式常用编译器通常至少支持C99/C++11,因此本教程低于或等于此版本的特性将不再标注版本,并且通常支持C11和C++17,因此本教程涉及的内容均以该标准为准。通常编译器不会实现标准的所有功能,因此是否实现了特定功能需要以手册为准。
编译器 | 编译器版本 | 支持的C版本 | 支持的C++版本 | 参考 |
Arm Compiler for Embedded 6 | 6.22 | ISO C89, C99, C11 (实际也支持GUN C90, C99, C11) | ISO C++98, C++11, C++14 (实际也支持ISO C++17和GUN C++98, C++11, C++14, C++17) | Standards compliance in Arm Compiler |
Arm Compiler 5 | 5.04 | ISO C90, C99 | ISO C++03, C++11 | The compiler |
IAR C/C++ Compiler for Arm | 9.30.1 | ISO C89, C11, C17/C18 | ISO C++14, C++17(不含库) | IAR Embedded Workbench for Arm |
GNU C/C++ Compiler (GCC) | 13.3 | ISO C89, C99, C11, C17/C18, 不完整支持C23 GNU C89, C99, C11, C17/C18 | ISO/GNU C++98, C++11, C++14, C++17和大部分C++20 | Language Standards Supported by GCC |