C23 (C語言標準)
此條目可參照英語維基百科相應條目來擴充。 (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) (英語).