C23 (C语言标准)
![本页使用了标题或全文手工转换](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() | 此条目可参照英语维基百科相应条目来扩充。 (2024年4月1日) |
C语言标准 |
---|
K&R C • ANSI C • C99 • C11 • C18 • C23 |
C23 是 ISO/IEC 9899:2024 的非正式名称, 同时也是 C语言 继 C18 标准(ISO/IEC 9899:2018)[1]后的又一次更新。 这项项目在2016年时被非正式的称为 C2x [2],并预计在2024年发布。 最新公开的 C23 草案在2023年4月1日发布。 第一次C2X草案的 WG14 会议是在 2019年10月举行 [3], 由于新冠疫情, 这些会议在2020年一度改为在线远程的形式。 这些会议在2024年仍在持续著。
特色
到草案阶段, C23 有以下特色[4]:
新的语言特色
- 加入特性,以双重方括号
[[ ]]
表示,用以标记一些信息供编译器识别
新的形别与关键字
- 空指针:加入
nullptr_t
类型以代表空指针,并加入nullptr
常量 - 整数:加入
_BitInt(N)
unsigned _BitInt(N)
以支持64位以上的大整数 - 10进位小数:加入
_Decimal32
,_Decimal64
,_Decimal128
关键字,用来表示10进位小数 - 加入
char8_t
表示 UTF8 类型字符串 - 将一些 C11 存在的关键字改为小写并去掉前置下划线,如
_Bool
改为bool
,以前的写法主要是为了避免与旧的代码发生冲突。 - 加入
true
和false
关键字
新的宏
- 加入
#elifdef
和#elifndef
两个新宏,这两个其实和过去的#elif defined
以及#elif !defined
等价
新的函示库
编译器支持
引用
- ^ 14:00-17:00. ISO/IEC 9899:2018. ISO. [2024-03-30]. (原始内容存档于2018-08-10) (英语).
- ^ WG 14 N 2086 -- C2x Charter. www.open-std.org. [2024-03-30]. (原始内容存档于2022-12-22).
- ^ N 2437: Agenda for October, 2019. www.open-std.org. [2024-03-30]. (原始内容存档于2021-03-05).
- ^ 14:00-17:00. ISO/IEC DIS 9899. ISO. [2024-03-30]. (原始内容存档于2024-05-06) (英语).