色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言如何表示棄用的函數

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-12-03 16:20 ? 次閱讀

自從把Ubuntu更新到24.04,經常在 man 手冊里面看到一些生面孔。

比如很多庫函數都加上了 restrict 關鍵字。

f7e18fa6-b14d-11ef-93f3-92fbcf53809c.png

這個關鍵字我們之前講過,感興趣的話可以去主頁搜索一下。

還有一個函數,gets,他的前面加上了 deprecated,并且還有兩個嵌套的中括號,這又是幾個意思?

f811c8ec-b14d-11ef-93f3-92fbcf53809c.png


用過 gets 的同學都知道,這個函數早在多年前就已經被棄用,因為它不安全。

#include 


int main()
{
    char buf[32] = {0};


    gets(buf);
        
    return 0;
}


如果定義的數組過小,如果輸入的數據過大,很容易就造成越界,會帶來一系列的問題。

所以在代碼里面使用 gets 編譯的時候就會提示警告。

f824d5ae-b14d-11ef-93f3-92fbcf53809c.png


man 手冊里面看到的 deprecated 就表示這個函數被棄用了。

早在多年前,GNU就有了 __attribute__ 機制,用來修飾函數或者變量的屬性,這個我們在前面也講過。

就在最新的 C23 里面,C語言也正式把這些屬性加了進來,寫法就是我們剛才見到的兩個中括號嵌套。

f845b04e-b14d-11ef-93f3-92fbcf53809c.png


目前標準里面支持的屬性有這 8 種,其他屬性,由編譯器自己決定。

f86ff4da-b14d-11ef-93f3-92fbcf53809c.png



比如在 GCC 里面,使用 GNU 擴展的屬性需要寫成 gnu:: 開頭。

f87cb9fe-b14d-11ef-93f3-92fbcf53809c.png



再回到 deprecated,如果在一個函數的前面加上這個屬性,就是在提示用戶,這個函數被棄用了,最好不要用。

#include 


[[deprecated]]void test()
{
    printf("this is test ...
");
}


int main()
{
    test();


    return 0;
}



并且在編譯的時候,會以警告的形式提示。

f88e2dd8-b14d-11ef-93f3-92fbcf53809c.png



這個屬性有助于幫助用戶在維護代碼的時候逐步淘汰舊代碼,同時又能保持現有功能的兼容性,完成平滑過渡。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136685
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62569
  • Ubuntu
    +關注

    關注

    5

    文章

    563

    瀏覽量

    29704

原文標題:C語言又搞事情,如何表示棄用的函數

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C語言函數的返回值

    當然,C語言程序員中還有一種“行業潛規則”。如果定義的函數是個布爾函數,也即返回值顯式的使用類似于 bool 關鍵字定義,或者函數名類似于
    發表于 08-31 10:11 ?1672次閱讀

    C語言入門教程-函數

    函數C語言本身具備最基本功能,所以C函數庫就顯得十分重要了。C
    發表于 07-29 10:40 ?1115次閱讀

    C語言回調函數學習

    對指針的應用是C語言編程的精髓所在,而回調函數就是C語言里面對函數指針的高級應用。簡而言之,回調
    發表于 05-27 09:44 ?7204次閱讀

    C語言函數大全(語法著色版)

    C語言函數大全,已包含絕大部分的函數。每個函數包含函數名,功能,用法,舉例,內容詳盡。希望對大家
    發表于 07-30 16:03 ?0次下載

    C語言指針函數函數指針詳細介紹

    C語言指針函數函數指針詳細介紹。。。。。。。
    發表于 03-04 15:27 ?5次下載

    C語言標準庫函數

    C語言標準庫函數,使用C語言編程時,常用到的函數
    發表于 05-11 16:41 ?0次下載

    C語言scanf函數詳解

    C語言scanf函數詳細解釋
    發表于 05-15 09:20 ?6次下載

    基于C語言標準庫函數

    基于C語言標準庫函數
    發表于 10-23 17:41 ?11次下載
    基于<b class='flag-5'>C</b><b class='flag-5'>語言</b>標準庫<b class='flag-5'>函數</b>

    C語言函數返回1和返回0到底哪個好?

    可能會比較復雜,不同的輸入,常常產生不同的輸出結果。 1C語言函數的返回值 C語言函數可以通過返
    的頭像 發表于 04-22 09:47 ?2699次閱讀

    C語言函數速查手冊

    c\c++語言函數速查手冊
    發表于 06-30 14:48 ?11次下載

    C語言-函數的定義、聲明、傳參

    C語言函數是非常重要的知識點,一個完整的C語言程序就是由主函數和各個子
    的頭像 發表于 08-14 09:57 ?1935次閱讀

    講解下C語言的內聯函數

    內聯函數C語言C++中借鑒過來的,適當的使用內聯函數可以提高程序的執行效率。
    的頭像 發表于 02-16 09:15 ?1493次閱讀

    C語言函數參數介紹

    C語言數組元素作函數實參 數組元素可以用作函數實參,不能用作形參。 C語言在用數組元素作
    的頭像 發表于 03-10 14:30 ?2372次閱讀

    c語言gets函數可以輸入數字嗎

    C語言中的gets函數是用來讀取字符串的,而不是用來讀取數字的。它會讀取輸入的字符直到遇到換行符或者文件結束符。因此,如果你嘗試使用gets函數來讀取數字,是無法準確獲取數字本身的。
    的頭像 發表于 11-24 10:00 ?1558次閱讀

    使用C語言實現函數模板

      C語言能不能實現一個通用的函數,既能完成整數的相加,又能完成浮點數的相加?
    的頭像 發表于 11-09 11:38 ?375次閱讀
    主站蜘蛛池模板: 午夜久久影院| 久久爽狠狠添AV激情五月| 成人在线免费视频观看| 最新国产成人综合在线观看| 亚洲毛片网| 亚洲二区电影| 午夜国产一区在线观看| 色偷偷男人的天堂a v| 秋霞电影网午夜鲁丝片无码| 男女啪啪久久精品亚洲A| 老师小扫货水能么多叫出来| 久久久精品免费视频| 黄色大片久久| 极品美女久久久久久久久久久| 国产午夜精品不卡视频| 国产免费麻传媒精品国产AV| 国产美女久久久久久久久久久| 国产精品久久久久久人妻香蕉 | 青青草在线 视频| 欧美色图天堂网| 人人啪日日观看在线| 日本午夜精品一区二区三区电影| 琪琪色原网20岁以下热热色原网站| 欧美精品亚洲精品日韩专区一| 女神被调教成了精盆| 欧美又粗又大AAAA片| 人妻中文字幕无码系列| 色噜噜噜亚洲男人的天堂| 午夜福利理论片高清在线| 亚洲 欧美 国产 综合 在线| 亚洲国产欧美日本大妈| 伊人大香线蕉精品在线播放| 1313久久国产午夜精品理论片 | 亚洲人女同志video| 伊人久久大香线蕉综合电影| 最新快播网站| 白银谷在线观看| 国产精品无码麻豆放荡AV| 回复术士勇者免费观看全集 | 东北嫖妓对白粗口| 99视频在线免费观看|