色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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次閱讀
    主站蜘蛛池模板: 国产一区二区高清| 北原夏美 快播| 99久久免费看国产精品| 精品午夜久久福利大片免费| 探花口爆颜射乳交日韩| FREE17一18外女破| 免费人妻AV无码专区五月| 正在播放久久| 久久久擼擼擼麻豆| 一天不停的插BB十几次| 狠狠啪在线香蕉| 亚洲蜜桃AV永久无码精品放毛片| 国产精品色欲AV亚洲三区软件| 十分钟免费观看大全视频| 国产成人免费a在线资源| 四虎一级片| 国产精品A久久久久久久久| 丝瓜视频在线免费| 国产普通话精品久久| 甜性涩爱在线看| 国产亚洲AV无码成人网站| 亚洲女人网| 美女MM131爽爽爽| 99在线免费视频| 色列少女漫画| 国产亚洲精品第一区香蕉| 亚洲精品一二三| 老头操美女| 超碰caoporen国产| 性美国人xxxxx18| 久久精品男人影院| www.狠狠色| 亚洲国产中文在线视频免费| 久久精品亚洲AV高清网站性色| 99re6久久在热线视频| 日本xxxxxxxxx老师59| 国产美女又黄又爽又色视频网站| 亚洲涩福利高清在线| 免费无码又爽又黄又刺激网站| swag合集120部| 性色欲情网站IWWW九文堂|