在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

深入探索GCC的attribute屬性

學(xué)益得智能硬件 ? 來源:學(xué)益得智能硬件 ? 2025-02-13 10:05 ? 次閱讀

如果經(jīng)常看Linux源碼,一定會見過 attribute 屬性,他在 Linux 里面出現(xiàn)的很多。

attribute 是 gcc 的擴(kuò)展功能,它不屬于標(biāo)準(zhǔn)C語言

使用 attribute 可以修飾變量、函數(shù)或者數(shù)據(jù)類型的屬性,屬性有很多,有些確實(shí)很有用。

找了幾個可以修飾函數(shù)的屬性,供大家參考下。

如果希望函數(shù)可以在 main 函數(shù)前面執(zhí)行,可以用 constructor 屬性,就是構(gòu)造的意思。

如果希望函數(shù)可以在 main 函數(shù)之后執(zhí)行,可以用 destrucotr 屬性,有點(diǎn)析構(gòu)的意思。

網(wǎng)上有些介紹使用這兩個屬性來模擬 C++ 的構(gòu)造函數(shù)和析構(gòu)函數(shù),說實(shí)話,這比 C++ 里面的構(gòu)造和析構(gòu)差遠(yuǎn)了,用它來給程序做些初始化、回收的操作,還是可以的。

第二個,nonnull。

寫函數(shù)的時候,我們經(jīng)常對函數(shù)做入?yún)⑴袛啵热绶乐箓鬟M(jìn)來的參數(shù)是空指針,導(dǎo)致程序下面出現(xiàn)異常。

使用 nonnull 屬性,可以讓編譯器來判斷。如果傳進(jìn)來的參數(shù)是 NULL,編譯的時候會提示警告,非常的人性化。

第三個,deprecated。

如果想把某個函數(shù)廢棄掉,比如在項(xiàng)目的后續(xù)版本中不再使用,可以使用 deprecated 屬性,加上這個屬性,如果你還是使用這個函數(shù),編譯就會提示警告。

比如常見的 gets 函數(shù),如果一下子把它從標(biāo)準(zhǔn)庫中刪掉,對以前的程序不夠友好,所以只能提醒。

第四個,noreturn。

對于不會返回的函數(shù),可以使用 noreturn 屬性。注意,返回值是 void 類型和函數(shù)不返回是兩碼事,這樣的代碼編譯會提示警告。

如果在函數(shù)內(nèi)部加上死循環(huán)或者退出,這樣的函數(shù)才屬于不返回。

第五個,weak,用于定義弱函數(shù)。

比如在一個文件中定義了弱函數(shù),另一個文件完全可以重新再定義一遍,并且編譯器會自動鏈接到用戶定義的新函數(shù)上。

weak 屬性在 STM32 上面出現(xiàn)的很多,比如中斷函數(shù)等等。

gcc 擴(kuò)展的屬性很多,打開 gcc 文檔,粗略的估算了一下,可能有百來個。

可能是C語言也發(fā)現(xiàn)了這些屬性好用,在最新的C23標(biāo)準(zhǔn)里面,也加入了屬性這個概念,不過用法很奇葩,使用兩個嵌套的中括號,而且目前支持的屬性也比較少。

編譯器一直都是走在標(biāo)準(zhǔn)的前面,也許在接下來的某個C語言標(biāo)準(zhǔn)中,會有更多的 gcc 屬性加入到C語言中。

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

    關(guān)注

    87

    文章

    11353

    瀏覽量

    210623
  • GCC
    GCC
    +關(guān)注

    關(guān)注

    0

    文章

    109

    瀏覽量

    24919

原文標(biāo)題:gcc的attribute屬性,確實(shí)值得學(xué)習(xí)

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

收藏 人收藏

    評論

    相關(guān)推薦

    Meta組建四大專研小組,深入探索DeepSeek模型

    近日,據(jù)報(bào)道,臉書母公司Meta為了提升其大模型Llama的性能,專門成立了四個研究小組,深入探索量化巨頭幻方量化旗下的國產(chǎn)大模型DeepSeek的工作原理。 據(jù)悉,Meta組建的這四個小組各有側(cè)重
    的頭像 發(fā)表于 02-05 14:02 ?138次閱讀

    全球計(jì)算聯(lián)盟GCC成立,安謀科技牽頭編寫白皮書發(fā)布

    1月10日,由全球計(jì)算聯(lián)盟(簡稱“GCC”)主辦的“2025全球計(jì)算大會——全球計(jì)算聯(lián)盟啟航大會”在深圳舉行。大會期間,同步舉辦了全球計(jì)算聯(lián)盟(GCC)成立慶典,并在隨后的年度系列成果發(fā)布儀式上
    發(fā)表于 01-13 14:55 ?65次閱讀
    全球計(jì)算聯(lián)盟<b class='flag-5'>GCC</b>成立,安謀科技牽頭編寫白皮書發(fā)布

    MSP430 GCC用戶指南

    電子發(fā)燒友網(wǎng)站提供《MSP430 GCC用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-05 14:51 ?0次下載
    MSP430 <b class='flag-5'>GCC</b>用戶指南

    OpenAI正深入探索文本水印技術(shù)的前沿領(lǐng)域

    8月5日最新資訊透露,OpenAI正積極投身于文本水印技術(shù)的尖端探索,但與此同時,公司也坦誠地指出了這一創(chuàng)新領(lǐng)域所面臨的艱巨技術(shù)障礙與未解之謎。
    的頭像 發(fā)表于 08-05 12:59 ?615次閱讀

    __attribute__((weak)) __weak_symbol在idf4.4庫中無效的原因?

    請教下,在編譯時,遇到幾個問題: 1.同一個工程中,在不同的C文件寫相同的函數(shù),編譯時不報(bào)錯,函數(shù)生效隨機(jī); 2.使用__attribute__((weak)) __weak_symbol無效。 請教下,__attribute__((weak)) __weak_symbo
    發(fā)表于 06-17 08:31

    鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【無障礙屬性】 通用屬性

    組件可以設(shè)置相應(yīng)的無障礙屬性和事件來更好地使用無障礙能力。
    的頭像 發(fā)表于 06-11 17:30 ?466次閱讀
    鴻蒙ArkTS聲明式開發(fā):跨平臺支持列表【無障礙<b class='flag-5'>屬性</b>】 通用<b class='flag-5'>屬性</b>

    【大語言模型:原理與工程實(shí)踐】探索《大語言模型原理與工程實(shí)踐》2.0

    《大語言模型“原理與工程實(shí)踐”》是關(guān)于大語言模型內(nèi)在機(jī)理和應(yīng)用實(shí)踐的一次深入探索。作者不僅深入討論了理論,還提供了豐富的實(shí)踐案例,幫助讀者理解如何將理論知識應(yīng)用于解決實(shí)際問題。書中的案例分析有助于
    發(fā)表于 05-07 10:30

    arcgis圖層字段怎么批量輸入屬性

    對于ArcGIS圖層字段的批量輸入屬性,可以通過以下步驟完成: 打開ArcMap軟件,并加載需要編輯屬性的圖層。 在ArcMap的主菜單中,選擇“編輯(Edit)”選項(xiàng),然后選擇“開始編輯
    的頭像 發(fā)表于 02-25 14:15 ?5282次閱讀

    arcgis中如何在屬性表中選擇多個屬性

    在ArcGIS中,你可以通過多種方式來選擇屬性表中的多個屬性。下面是一些常用的方法: 方法一:使用Select by Attributes工具 在ArcGIS的屬性表中,選擇“Selection
    的頭像 發(fā)表于 02-25 11:10 ?1.5w次閱讀

    arcgis按屬性選擇not(t)怎么用

    ArcGIS是一款強(qiáng)大的地理信息系統(tǒng)軟件,用于處理和分析地理數(shù)據(jù)。通過屬性選擇工具,用戶可以基于數(shù)據(jù)的屬性條件來選擇特定的要素。 在ArcGIS中,屬性選擇的語法是基于結(jié)構(gòu)化查詢語言(SQL),可以
    的頭像 發(fā)表于 02-25 11:08 ?4451次閱讀

    mapgis如何進(jìn)行屬性連接

    MapGIS是一種強(qiáng)大的GIS(地理信息系統(tǒng))軟件,它提供了許多功能來處理和分析空間數(shù)據(jù)。在MapGIS中,屬性連接是一種非常有用的功能,它可以將兩個或多個地圖層中的屬性信息進(jìn)行關(guān)聯(lián)和合并,以便更好
    的頭像 發(fā)表于 02-25 10:59 ?1788次閱讀

    mapgis屬性篩選表達(dá)式

    MapGIS是一種廣泛應(yīng)用于地理信息系統(tǒng)(GIS)領(lǐng)域的軟件平臺。它提供了多種功能和工具,用于處理和分析地理數(shù)據(jù)。屬性篩選是MapGIS中一項(xiàng)重要的功能,它允許用戶根據(jù)特定的屬性條件來篩選要素。在這
    的頭像 發(fā)表于 02-25 10:58 ?1839次閱讀

    mapgis區(qū)屬性賦參數(shù)

    MapGIS是一種基于地圖信息系統(tǒng)的軟件平臺,它提供了豐富的地理空間數(shù)據(jù)處理和空間數(shù)據(jù)分析功能,可以幫助用戶進(jìn)行空間數(shù)據(jù)的可視化、查詢、分析和決策。其中一項(xiàng)重要的功能就是區(qū)屬性賦參數(shù),也稱為區(qū)域屬性
    的頭像 發(fā)表于 02-25 10:56 ?1189次閱讀

    mapgis如何給區(qū)屬性賦值

    MapGIS是一款功能強(qiáng)大的地理信息系統(tǒng)軟件,它提供了豐富的功能和工具,使用戶能夠?qū)Φ乩頂?shù)據(jù)進(jìn)行快速、高效的管理和分析。其中一個重要的功能就是給區(qū)屬性賦值,即對地圖中的區(qū)域進(jìn)行分類和標(biāo)記,以便更好
    的頭像 發(fā)表于 02-23 17:49 ?2444次閱讀

    proteus屬性賦值工具怎么用

    Proteus是一種電路設(shè)計(jì)和仿真軟件,在進(jìn)行電路設(shè)計(jì)和仿真時,屬性賦值是非常重要的步驟。屬性賦值工具可以幫助用戶快速有效地配置電路元件的屬性,從而實(shí)現(xiàn)電路的準(zhǔn)確仿真。下面是關(guān)于Proteus
    的頭像 發(fā)表于 02-23 17:19 ?4873次閱讀
    主站蜘蛛池模板: 国产精品久久久久久久久kt | 亚洲色图21p | 欧美另类丰满69xxxxx | 最好看最新的中文字幕1 | www狠狠干 | 日日拍夜夜嗷嗷叫狠狠 | 午夜欧美电影 | 美女网站一区二区三区 | 九九99久久精品午夜剧场免费 | 黄h网站| 欧美色视频网 | 特大一级aaaaa毛片 | 77ee成人 | se在线播放 | 亚洲第一页国产 | 色wwwww | 美国一级毛片片aa久久综合 | 性欧美videofree另类超大 | 成人网男女啪啪免费网站 | 国内精品免费视频自在线 | 国产成人精品三级在线 | 韩国免费三片在线视频 | 亚州国产精品精华液 | 天天操天天射天天 | 奇米奇米 | yy6080三级理论韩国日本 | 亚洲网站在线观看 | 天天干国产 | 国产黄网站 | 黄色录像大全 | 免费一级毛片不卡在线播放 | 日本黄色高清视频 | 四月激情网 | 2021韩国理论片ok电影天堂 | 视频免费播放 | 在线精品91青草国产在线观看 | 天天舔天天操天天干 | 在线观看886影院成人影院 | 国产hs免费高清在线观看 | 夜夜春夜夜夜夜猛噜噜噜噜噜 | 亚洲免费小视频 |