C23 (C语言标准)

C程式語言標準,2023年修訂版

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,以前的写法主要是为了避免与旧的代码发生冲突。
  • 加入 truefalse 关键字

新的宏

  • 加入 #elifdef#elifndef 两个新宏,这两个其实和过去的 #elif defined 以及 #elif !defined 等价

新的函示库

编译器支持

引用

  1. ^ 14:00-17:00. ISO/IEC 9899:2018. ISO. [2024-03-30]. (原始内容存档于2018-08-10) (英语). 
  2. ^ WG 14 N 2086 -- C2x Charter. www.open-std.org. [2024-03-30]. (原始内容存档于2022-12-22). 
  3. ^ N 2437: Agenda for October, 2019. www.open-std.org. [2024-03-30]. (原始内容存档于2021-03-05). 
  4. ^ 14:00-17:00. ISO/IEC DIS 9899. ISO. [2024-03-30]. (原始内容存档于2024-05-06) (英语).