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) (英語).