curl 創始人兼核心開發者 Daniel Stenberg發表博客稱,他正在考慮是否要將 curl 使用的 C 語言標準從 C89 升級到 C99。
Daniel 表示,他觀察到許多廣受歡迎的 C 語言開源項目正在向前發展,并將所使用的 C 語言標準升級到 C99 或更高版本,例如 Linux、Git 等項目。而且在 curl 的郵件列表中也經常出現關于升級 C 語言標準的討論,特別是現在已計劃在 2023 年春季發布 curl v8,所以從理論上來講,這可能是進行一些更改的好時機。如果要升級 C 語言標準到 C99,那就要考慮哪些 C99 特性可以改進像 curl 這樣的項目。Daniel 表示自己能想到的可能給 curl 代碼帶來積極影響的部分特性是:-
//注釋 -
__func__預定義標識符 -
在
中使用布爾類型 -
指定的結構體初始值設定項
空的宏參數 -
在
和中使用擴展的整數類型 -
靈活的數組成員 (zero size arrays)
-
內聯函數
-
整數常量類型規則
-
將聲明和代碼混合
-
long long類型和庫函數 -
snprintf()函數家族 -
枚舉聲明中支持尾隨逗號
-
可變參數宏
-
長度可變的數組
此外,curl 作者表示不想推出 7.100,為此制定了 curl 8 發布計劃。curl 7 的版本號已迭代到7.86.0—— 離發布 7.100.0 只差十多個版本,但 curl 作者 Daniel Stenberg不希望在次版本號中使用三位數,因為他擔心這會引發不必要的問題,甚至可能會導致他人用于比較版本的腳本出錯。由于 curl 通常每隔 8 周發布一次新版本,如果按照計劃的發布節奏,curl 7 的次版本號差不多在兩年后就會到達 100。Daniel 發現明年是 curl 的一個重要周年紀念日,他想到了一個可以避免 "100" 版本號的方案 ——在 curl 誕生 25 周年當天發布 curl 8。如此一來,既凸顯了周年紀念日的地位,又體現了升級主版本號的意義,更是直接避開了 "100" 版本號。可謂是一步到位地實現了 “既要又要還要” 的需求。 因此,在 2023 年 3 月 20 日,curl 25 歲生日當天,Daniel 將會正式發布 curl 8.0.0。這將會是 curl 23 年來首次升級主版本號。不過正如上文所解釋,此次升級主版本號與功能變化無關,也不會進行特別的慶祝。總而言之,這個升級和常規的并無二致,只是重置了次版本號,并升級主版本號。在常規的 curl 發布周期中,通常是是每隔 8 周在周三發布一次新版本。然而 2023 年 3 月 20 日是星期一。因此,curl 8.0.0 的發布時間會有所調整,curl 作者計劃在發布 curl 8 之后再調整回常規的發布時間。 審核編輯 :李倩
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
C語言
+關注
關注
183文章
7644瀏覽量
145603 -
代碼
+關注
關注
30文章
4968瀏覽量
73976
原文標題:curl 作者:不考慮其他語言重構,計劃升級 C 語言標準、明年發布 curl 8
文章出處:【微信號:CPP開發者,微信公眾號:CPP開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
【ESP32-C2系列】WT99C202-AI-S2開發板上手指南
設計的智能語音AI模組,支持2.4GHzWi-Fi、BluetoothLEv5.0,本地語音控制,此外,WT99C202-AI-S2支持離在線語音對話,OTA升級,
C語言安全編碼指南:MISRA C、CERT C、CWE 與 C Secure 標準對比與Perforce QAC應用詳解
如何編寫真正安全的C語言代碼?指南涵蓋MISRA C、CERT、CWE等國際安全編碼標準對比,以及如何借助Perforce QAC自動檢測漏洞。推薦給嵌入式/汽車/工業軟件的開發者!
C語言主要特點
。
3.數據類型豐富。C語言提供的數據類型包括整形、浮點型、字符型、數組類型、指針類型、結構體類型和共用體類型等,C99又擴充了復數浮點型、超長整型(long long)和布爾類型(bool)等。尤其是
發表于 01-05 07:41
微庫與標準C庫的區別
、stdout 和 stderr 除外。
MicroLib對 C99 函數提供有限的支持。
MicroLib不支持操作系統函數。
MicroLib不支持與位置無關的代碼。
MicroLib不提供互斥鎖來
發表于 12-09 07:49
C語言的編程技巧
1、宏定義使用do{...}while(0)?:當宏定義中包含多條語句時,使用do{...}while(0)可以避免語句嵌套問題,確保宏的獨立性。?
?2、靈活數組成員?:C99標準允許結構體的最后
發表于 11-27 06:46
STM32MP157d linux從5.4.31升級到6.1.82無法啟動怎么解決?
我以前一直使用linux5.4.31,只使用了TFA沒有optee
uboot是2020版本。一直用得好好的
上個禮拜我想升級到6.1.82(主要想打RT linux patch, 看到STM有出
發表于 06-10 07:31
JDK從8升級到21的問題集
一、背景與挑戰 1. 升級動因 ?Oracle長期支持策略 ?現代特性需求:協程、模式匹配、ZGC等 ?安全性與性能的需求 ?AI新技術引入的版本要求 2. 項目情況 ?100+項目并行升級
STM32MP157d linux從5.4.31升級到6.1.82無法啟動怎么解決?
我以前一直使用linux5.4.31,只使用了TFA沒有optee
uboot是2020版本。一直用得好好的
上個禮拜我想升級到6.1.82(主要想打RT linux patch, 看到STM有出
發表于 06-06 06:42
STM32MP157d linux從5.4.31升級到6.1.82無法啟動怎么解決?
我以前一直使用linux5.4.31,只使用了TFA沒有optee
uboot是2020版本。一直用得好好的
上個禮拜我想升級到6.1.82(主要想打RT linux patch, 看到STM有出
發表于 05-21 06:20
STM32MP157d linux從5.4.31升級到6.1.82無法啟動的原因?
我以前一直使用linux5.4.31,只使用了TFA沒有optee
uboot是2020版本。一直用得好好的
上個禮拜我想升級到6.1.82(主要想打RT linux patch, 看到STM有出
發表于 04-27 06:30
將curl使用的C語言標準從C89升級到C99?
評論