C 编译器支持

来自cppreference.com
< c


C23 特性

注意:随着 C23/2x 标准进程推进,这个页面可能过时。

C23 核心语言特性

C23 功能特性

 
提案

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
无消息的 static_assertN2265996.52021.1.2 (基于 clang)
[[nodiscard]]N22671096.42021.1.2 (基于 clang)
[[maybe_unused]]N22701096.42021.1.2 (基于 clang)
[[deprecated]]N23341096.42021.1.2 (基于 clang)
属性N2335
N2554
1096.42021.1.2 (基于 clang)
IEEE 754 十进制浮点数类型N23414.2 (部分)*
12
13.0 (部分)*
[[fallthrough]]N24081096.42021.1.2 (基于 clang)
u8 字符常量N241810156.52022.2
移除无原型的函数定义N243210152022.2
有消息的 [[nodiscard]]N244811106.42021.1.2 (基于 clang)
函数定义中的匿名形参N248011116.42021.1.2 (基于 clang)
声明和语句块结束前的标号N25081116部分*6.517.0*
二进制整数常量N25494.3*
11
2.9*
9
19.0 (2015)**6.511.0*
预处理条件中的 __has_c_attributeN25531196.52021.1.2 (基于 clang)
允许重复属性N255711136.52021.4 (基于 clang)
IEEE 754 交换和扩展类型N26017 (部分)*
14
6 (部分)*部分*
数位分隔符N2626121319.0 (2015)**6.518.0*
#elifdef#elifndefN2645121319.40*13.1.6*6.52021.4
u8 字符串字面量的类型修改N265313
用于标号的 [[maybe_unused]]N266211166.52022.2
#warningN26866.5
位精确整数类型 (_BitInt)N276314 (部分)*156.52022.2
[[noreturn]]N276413156.52022.2
位精确整数常量的后缀N277514152022.2
预处理条件中的 __has_includeN2799519.11*6.518.0
标识符语法,使用 Unicode 标准附件 31N283613156.52022.2
移除无原型的函数声明N284113152022.2
空初始化式N2900部分*
13
部分*部分*部分*部分*
typeoftypeof_unqualN2927
N2930
部分*
13
部分*
16
19.39*部分*部分*部分*部分*
新的关键词拼写N293413166.5
预定义 truefalseN293513152022.2
[[unsequenced]][[reproducible]]N295615
放宽对变长参数列表的要求N297513166.52023.1
对象定义中的类型推导N30071318
#embedN30171519
constexpr 对象N30181319
改善普通枚举N30291320*
有固定底层类型的枚举N30301320*
__VA_OPT__N30338
13
1219.39*6.5
复合字面值的存储说明符N303813
nullptrN30421316
 

C23 功能特性
 

提案
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray

C23 库特性

C99 特性

C99 核心语言特性

C99 功能特性

 
提案

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
标识符中的通用字符名3.1
提高翻译极限N5900.9不适用
// 注释N6442.7
restrict 指针N4482.95部分*
增强算术类型N815
N601
N620
N638
N657
N694
N809
部分可能
灵活的数组成员3.0
变长数组 (VLA) 类型N6830.9
可变修改 (VM) 类型N2778不适用
定名初始化式N4943.0
非常量初始化式1.21不适用
幂等 cvr 限定符N5053.0不适用
枚举项列表 中的尾部逗号0.9
十六进制浮点数常量N3082.8
复合字面量N7163.1
浮点数环境部分部分
规定有符号整数类型的除法进行截断N6170.9不适用
main() 函数中的隐式 return 0;
混合安排声明和语句N7403.0
for 循环中的 初始化语句
inline 函数N7414.3
预定义变量 __func__N6112.95
函数声明中的 [] 之中的 cvr 限定符和 static3.1
变参宏N7072.95
_Pragma 预处理器运算符N6343.0部分*
浮点数求值的标准语用(pragma)N631
N696
 

C99 功能特性
 

提案
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray

参阅

编译器支持C++ 文档