91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

將curl使用的C語言標(biāo)準(zhǔn)從C89升級到C99?

CPP開發(fā)者 ? 來源:OSC開源社區(qū) ? 作者:OSC開源社區(qū) ? 2022-11-22 14:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

curl 創(chuàng)始人兼核心開發(fā)者 Daniel Stenberg發(fā)表博客稱,他正在考慮是否要將 curl 使用的 C 語言標(biāo)準(zhǔn)從 C89 升級到 C99。77cd3b1c-6a19-11ed-8abf-dac502259ad0.pngDaniel 表示,他觀察到許多廣受歡迎的 C 語言開源項目正在向前發(fā)展,并將所使用的 C 語言標(biāo)準(zhǔn)升級到 C99 或更高版本,例如 Linux、Git 等項目。而且在 curl 的郵件列表中也經(jīng)常出現(xiàn)關(guān)于升級 C 語言標(biāo)準(zhǔn)的討論,特別是現(xiàn)在已計劃在 2023 年春季發(fā)布 curl v8,所以從理論上來講,這可能是進(jìn)行一些更改的好時機(jī)。如果要升級 C 語言標(biāo)準(zhǔn)到 C99,那就要考慮哪些 C99 特性可以改進(jìn)像 curl 這樣的項目。Daniel 表示自己能想到的可能給 curl 代碼帶來積極影響的部分特性是:
  • //注釋

  • __func__預(yù)定義標(biāo)識符

  • 中使用布爾類型

  • 指定的結(jié)構(gòu)體初始值設(shè)定項
    空的宏參數(shù)

  • 中使用擴(kuò)展的整數(shù)類型

  • 靈活的數(shù)組成員 (zero size arrays)

  • 內(nèi)聯(lián)函數(shù)

  • 整數(shù)常量類型規(guī)則

  • 將聲明和代碼混合

  • long long類型和庫函數(shù)

  • snprintf()函數(shù)家族

  • 枚舉聲明中支持尾隨逗號

  • 可變參數(shù)宏

  • 長度可變的數(shù)組

當(dāng)然,開發(fā)者還可以使用許多其他的特性,但問題是他們是否真的需要這些特性。而且對于上面提到的部分特性,Daniel 表示他們已經(jīng)有了不錯的替代方案,其他的特性要么就是無關(guān)緊要,要么就是可能會讓人分心。因此,Daniel 認(rèn)為,如果馬上為 curl 項目采用 C99 所有新特性,這會導(dǎo)致重寫大部分代碼,從而引入錯誤。此外還有一個問題,如果真的要升級 C 語言標(biāo)準(zhǔn),是否應(yīng)該直接升級到 C11,而不是停留在 C99。在 curl 社區(qū)對于升級 C 語言標(biāo)準(zhǔn)的討論中,沒有人能清楚地闡明升級之后能給 curl 項目帶來的好處。Daniel 表示他們目前看到的風(fēng)險是,大家都陷入了與項目非常不相關(guān)的討論和變化中,而這些討論和變化實際上可能不會使項目取得很大進(jìn)展。無論是功能還是質(zhì)量 / 安全性。Daniel 認(rèn)為還有很多更好的事情要做,還有更多值得付出的努力來投入精力,這實際上可以改進(jìn)項目并將其推進(jìn)。比如改進(jìn)測試套件、增加測試覆蓋率、確保更多代碼由模糊器執(zhí)行。Daniel決定從 curl 8 開始,他們將要求編譯器支持 64 位數(shù)據(jù)類型,主要是為了查看它的運行情況。這不是原來的 C89 版本中存在的特性,而是在 C99 中引入的。目前沒有不支持此功能的現(xiàn)代編譯器。他認(rèn)為,這也許是可以繼續(xù)適應(yīng)和使用特定的 “后 C89 特性” 的方式。通過挑選特定的特性,然后隨著時間的推移慢慢適應(yīng)它們。最后,Daniel 表示不考慮使用任何其他語言重寫 curl。

此外,curl 作者表示不想推出 7.100,為此制定了 curl 8 發(fā)布計劃。curl 7 的版本號已迭代到7.86.0—— 離發(fā)布 7.100.0 只差十多個版本,但 curl 作者 Daniel Stenberg不希望在次版本號中使用三位數(shù),因為他擔(dān)心這會引發(fā)不必要的問題,甚至可能會導(dǎo)致他人用于比較版本的腳本出錯。由于 curl 通常每隔 8 周發(fā)布一次新版本,如果按照計劃的發(fā)布節(jié)奏,curl 7 的次版本號差不多在兩年后就會到達(dá) 100。Daniel 發(fā)現(xiàn)明年是 curl 的一個重要周年紀(jì)念日,他想到了一個可以避免 "100" 版本號的方案 ——在 curl 誕生 25 周年當(dāng)天發(fā)布 curl 8。如此一來,既凸顯了周年紀(jì)念日的地位,又體現(xiàn)了升級主版本號的意義,更是直接避開了 "100" 版本號??芍^是一步到位地實現(xiàn)了 “既要又要還要” 的需求。 因此,在 2023 年 3 月 20 日,curl 25 歲生日當(dāng)天,Daniel 將會正式發(fā)布 curl 8.0.0。這將會是 curl 23 年來首次升級主版本號。不過正如上文所解釋,此次升級主版本號與功能變化無關(guān),也不會進(jìn)行特別的慶祝??偠灾@個升級和常規(guī)的并無二致,只是重置了次版本號,并升級主版本號。在常規(guī)的 curl 發(fā)布周期中,通常是是每隔 8 周在周三發(fā)布一次新版本。然而 2023 年 3 月 20 日是星期一。因此,curl 8.0.0 的發(fā)布時間會有所調(diào)整,curl 作者計劃在發(fā)布 curl 8 之后再調(diào)整回常規(guī)的發(fā)布時間。 審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145665
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4970

    瀏覽量

    74017

原文標(biāo)題:curl 作者:不考慮其他語言重構(gòu),計劃升級 C 語言標(biāo)準(zhǔn)、明年發(fā)布 curl 8

文章出處:【微信號:CPP開發(fā)者,微信公眾號:CPP開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    【ESP32-C2系列】WT99C202-AI-S2開發(fā)板上手指南

    設(shè)計的智能語音AI模組,支持2.4GHzWi-Fi、BluetoothLEv5.0,本地語音控制,此外,WT99C202-AI-S2支持離在線語音對話,OTA升級,
    的頭像 發(fā)表于 02-25 18:25 ?124次閱讀
    【ESP32-<b class='flag-5'>C</b>2系列】WT<b class='flag-5'>99C</b>202-AI-S2開發(fā)板上手指南

    C語言安全編碼指南:MISRA C、CERT C、CWE 與 C Secure 標(biāo)準(zhǔn)對比與Perforce QAC應(yīng)用詳解

    如何編寫真正安全的C語言代碼?指南涵蓋MISRA C、CERT、CWE等國際安全編碼標(biāo)準(zhǔn)對比,以及如何借助Perforce QAC自動檢測漏洞。推薦給嵌入式/汽車/工業(yè)軟件的開發(fā)者!
    的頭像 發(fā)表于 01-26 17:38 ?825次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>安全編碼指南:MISRA <b class='flag-5'>C</b>、CERT <b class='flag-5'>C</b>、CWE 與 <b class='flag-5'>C</b> Secure <b class='flag-5'>標(biāo)準(zhǔn)</b>對比與Perforce QAC應(yīng)用詳解

    C語言主要特點

    。 3.數(shù)據(jù)類型豐富。C語言提供的數(shù)據(jù)類型包括整形、浮點型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型和共用體類型等,C99又?jǐn)U充了復(fù)數(shù)浮點型、超長整型(long long)和布爾類型(bool)等。尤其是
    發(fā)表于 01-05 07:41

    C語言C++之間的區(qū)別是什么

    區(qū)別 1、面向?qū)ο缶幊?(OOP): C語言是一種面向過程的語言,它強(qiáng)調(diào)的是通過函數(shù)任務(wù)分解為一系列步驟進(jìn)行執(zhí)行。 C++在
    發(fā)表于 12-11 06:23

    微庫與標(biāo)準(zhǔn)C庫的區(qū)別

    、stdout 和 stderr 除外。 MicroLib對 C99 函數(shù)提供有限的支持。 MicroLib不支持操作系統(tǒng)函數(shù)。 MicroLib不支持與位置無關(guān)的代碼。 MicroLib不提供互斥鎖來
    發(fā)表于 12-09 07:49

    C語言的編程技巧

    1、宏定義使用do{...}while(0)?:當(dāng)宏定義中包含多條語句時,使用do{...}while(0)可以避免語句嵌套問題,確保宏的獨立性。? ?2、靈活數(shù)組成員?:C99標(biāo)準(zhǔn)允許結(jié)構(gòu)體的最后
    發(fā)表于 11-27 06:46

    C語言和單片機(jī)C語言有什么差異

    單片機(jī)c語言相對于普通C語言增加了一些基本的指令,還有變量的賦值是16進(jìn)制,當(dāng)然單片機(jī)c語言只牽
    發(fā)表于 11-14 07:55

    STM32MP157d linux5.4.31升級到6.1.82無法啟動怎么解決?

    我以前一直使用linux5.4.31,只使用了TFA沒有optee uboot是2020版本。一直用得好好的 上個禮拜我想升級到6.1.82(主要想打RT linux patch, 看到STM有出
    發(fā)表于 06-10 07:31

    JDK8升級到21的問題集

    一、背景與挑戰(zhàn) 1. 升級動因 ?Oracle長期支持策略 ?現(xiàn)代特性需求:協(xié)程、模式匹配、ZGC等 ?安全性與性能的需求 ?AI新技術(shù)引入的版本要求 2. 項目情況 ?100+項目并行升級
    的頭像 發(fā)表于 06-06 16:49 ?858次閱讀

    STM32MP157d linux5.4.31升級到6.1.82無法啟動怎么解決?

    我以前一直使用linux5.4.31,只使用了TFA沒有optee uboot是2020版本。一直用得好好的 上個禮拜我想升級到6.1.82(主要想打RT linux patch, 看到STM有出
    發(fā)表于 06-06 06:42

    STM32MP157d linux5.4.31升級到6.1.82無法啟動怎么解決?

    我以前一直使用linux5.4.31,只使用了TFA沒有optee uboot是2020版本。一直用得好好的 上個禮拜我想升級到6.1.82(主要想打RT linux patch, 看到STM有出
    發(fā)表于 05-21 06:20

    深入理解C語言C語言循環(huán)控制

    改變程序的執(zhí)行流程,使代碼更加靈活和可控。本文詳細(xì)介紹這些語句的作用及其應(yīng)用場景,并通過示例代碼進(jìn)行說明。Part.1break語句C語言中break語句有兩種
    的頭像 發(fā)表于 04-29 18:49 ?2066次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>C</b><b class='flag-5'>語言</b>循環(huán)控制

    STM32MP157d linux5.4.31升級到6.1.82無法啟動的原因?

    我以前一直使用linux5.4.31,只使用了TFA沒有optee uboot是2020版本。一直用得好好的 上個禮拜我想升級到6.1.82(主要想打RT linux patch, 看到STM有出
    發(fā)表于 04-27 06:30

    C語言的歷史及程序介紹

    電子發(fā)燒友網(wǎng)站提供《C語言的歷史及程序介紹.pdf》資料免費下載
    發(fā)表于 04-09 16:10 ?0次下載

    如何在 樹莓派 上編寫和運行 C 語言程序?

    在本教程中,我討論C編程語言是什么,C編程的用途,以及如何在RaspberryPi上編寫和運行C程序。本文的目的是為您介紹在Raspber
    的頭像 發(fā)表于 03-25 09:28 ?1167次閱讀
    如何在 樹莓派 上編寫和運行 <b class='flag-5'>C</b> <b class='flag-5'>語言</b>程序?