一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

C語言如何表示棄用的函數(shù)

學(xué)益得智能硬件 ? 來源:學(xué)益得智能硬件 ? 2024-12-03 16:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

比如很多庫函數(shù)都加上了 restrict 關(guān)鍵字。

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

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

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

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


用過 gets 的同學(xué)都知道,這個函數(shù)早在多年前就已經(jīng)被棄用,因為它不安全。

#include 


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


    gets(buf);
        
    return 0;
}


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

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

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


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

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

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

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


目前標(biāo)準(zhǔn)里面支持的屬性有這 8 種,其他屬性,由編譯器自己決定。

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



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

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



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

#include 


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


int main()
{
    test();


    return 0;
}



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

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



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

聲明:本文內(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)注

    180

    文章

    7632

    瀏覽量

    141816
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64921
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    592

    瀏覽量

    31268

原文標(biāo)題:C語言又搞事情,如何表示棄用的函數(shù)

文章出處:【微信號:學(xué)益得智能硬件,微信公眾號:學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    C語言函數(shù)的返回值

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

    C語言回調(diào)函數(shù)學(xué)習(xí)

    對指針的應(yīng)用是C語言編程的精髓所在,而回調(diào)函數(shù)就是C語言里面對函數(shù)指針的高級應(yīng)用。簡而言之,回調(diào)
    發(fā)表于 05-27 09:44 ?7302次閱讀

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

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

    C語言指針函數(shù)函數(shù)指針詳細(xì)介紹

    C語言指針函數(shù)函數(shù)指針詳細(xì)介紹。。。。。。。
    發(fā)表于 03-04 15:27 ?5次下載

    C語言標(biāo)準(zhǔn)庫函數(shù)

    C語言標(biāo)準(zhǔn)庫函數(shù),使用C語言編程時,常用到的函數(shù)。
    發(fā)表于 05-11 16:41 ?0次下載

    C語言scanf函數(shù)詳解

    C語言scanf函數(shù)詳細(xì)解釋
    發(fā)表于 05-15 09:20 ?6次下載

    基于C語言標(biāo)準(zhǔn)庫函數(shù)

    基于C語言標(biāo)準(zhǔn)庫函數(shù)
    發(fā)表于 10-23 17:41 ?11次下載
    基于<b class='flag-5'>C</b><b class='flag-5'>語言</b>標(biāo)準(zhǔn)庫<b class='flag-5'>函數(shù)</b>

    c語言函數(shù)指針定義,指針函數(shù)函數(shù)指針的區(qū)別

     往往,我們一提到指針函數(shù)函數(shù)指針的時候,就有很多人弄不懂。下面就由小編詳細(xì)為大家介紹C語言函數(shù)指針,指針
    發(fā)表于 11-16 15:18 ?3874次閱讀

    C語言模擬實現(xiàn)strcmp函數(shù)

    C語言模擬實現(xiàn)strcmp函數(shù)
    的頭像 發(fā)表于 06-29 16:51 ?2912次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>模擬實現(xiàn)strcmp<b class='flag-5'>函數(shù)</b>

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

    可能會比較復(fù)雜,不同的輸入,常常產(chǎn)生不同的輸出結(jié)果。 1C語言函數(shù)的返回值 C語言函數(shù)可以通過返
    的頭像 發(fā)表于 04-22 09:47 ?3017次閱讀

    C語言函數(shù)速查手冊

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

    C語言-函數(shù)的定義、聲明、傳參

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

    C語言函數(shù)參數(shù)介紹

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

    c語言gets函數(shù)可以輸入數(shù)字嗎

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

    使用C語言實現(xiàn)函數(shù)模板

      C語言能不能實現(xiàn)一個通用的函數(shù),既能完成整數(shù)的相加,又能完成浮點數(shù)的相加?
    的頭像 發(fā)表于 11-09 11:38 ?955次閱讀