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

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

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

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

宏的缺陷與內(nèi)聯(lián)函數(shù)的引入

麥辣雞腿堡 ? 來源:軒哥談芯 ? 作者:軒哥談芯 ? 2023-11-01 17:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

宏雖然有著一定的優(yōu)勢,但是它的缺點(diǎn)也不可忽視。

在編譯階段,我們很難發(fā)現(xiàn)代碼哪里出問題了,因?yàn)楹晏鎿Q是發(fā)生在預(yù)處理階段,所以有時(shí)候在宏函數(shù)傳參的時(shí)候發(fā)生一些錯(cuò)誤,編譯器不會發(fā)現(xiàn),那它調(diào)試起來就很麻煩。

所以為了解決這種不利于調(diào)試的問題,就有了內(nèi)聯(lián)函數(shù)。

那么什么是內(nèi)聯(lián)函數(shù)呢?

我們以inline修飾的函數(shù)叫做內(nèi)聯(lián)函數(shù),編譯階段,C編譯器會在調(diào)用函數(shù)的地方直接把函數(shù)展開,沒有壓棧開銷,內(nèi)聯(lián)函數(shù)提升程序運(yùn)行效率,但是會相應(yīng)的增加代碼的長度。所以這里叫做空間換時(shí)間。

道之初,帶來了空間和時(shí)間,所以,空間和時(shí)間就是編程的陰陽兩級。

不懂編程之道的程序員常常把空間和時(shí)間消耗殆盡,得道的程序員則總是有足夠的空間和時(shí)間完成編程任務(wù)。

舉個(gè)例子

inline int Add(int a,int b){ return a+b;}

編譯期間,編譯器會將內(nèi)聯(lián)函數(shù)替換相應(yīng)的函數(shù)體;

這里要注意一點(diǎn),在函數(shù)前加 inline 只是建議編譯器當(dāng)作內(nèi)容函數(shù)處理 ,但編譯器有自己的主張(遞歸 ,復(fù)雜函數(shù)等)

內(nèi)聯(lián)函數(shù)的特性:

inline是一種以空間換時(shí)間的做法,省去調(diào)用函數(shù)中參數(shù)壓棧,減少了調(diào)用的開銷。同時(shí),使用內(nèi)聯(lián)函數(shù)也比宏函數(shù)更省心,不必?fù)?dān)心宏參數(shù)傳遞過程中出現(xiàn)的意外情況。

inline對于編譯器而言只是一個(gè)建議,編譯器會自動優(yōu)化,如果定義為inline的函數(shù)體內(nèi)有循環(huán)/遞歸等等,編譯器優(yōu)化時(shí)會忽略掉內(nèi)聯(lián),另外,如果內(nèi)聯(lián)函數(shù)的函數(shù)體過大,一般的編譯器也會放棄內(nèi)聯(lián)方式,采用普通調(diào)用的方式進(jìn)行函數(shù)調(diào)用。

inline不建議聲明和定義分離,分離會導(dǎo)致鏈接錯(cuò)誤。因?yàn)閕nline被展開,就沒有函數(shù)地址了,鏈接就會找不到。

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

    關(guān)注

    3

    文章

    4381

    瀏覽量

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

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70797
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1662

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    明電子創(chuàng)業(yè)板IPO獲得受理

    近日,深交所官網(wǎng)顯示,成都明電子股份有限公司(以下簡稱“明電子”)創(chuàng)業(yè)板IPO獲得受理。
    的頭像 發(fā)表于 06-06 11:16 ?598次閱讀

    MSP430常用內(nèi)聯(lián)函數(shù)說明

    電子發(fā)燒友網(wǎng)站提供《MSP430常用內(nèi)聯(lián)函數(shù)說明.docx》資料免費(fèi)下載
    發(fā)表于 06-05 17:20 ?0次下載

    Vicor助力發(fā)打造主動懸架電源系統(tǒng)

    廈門發(fā)電聲股份有限公司(發(fā))打造業(yè)內(nèi)性能卓越的主動懸架電源系統(tǒng),旨在將長期以來僅見于豪華車型的功能引入中端車型。發(fā)成功突破困擾知名汽車技術(shù)供應(yīng)商幾十年的技術(shù)瓶頸,在滿足主動懸架系
    的頭像 發(fā)表于 06-04 15:24 ?499次閱讀

    PanDao:確認(rèn)缺陷等級并用于加工

    根據(jù)ISO101101標(biāo)準(zhǔn)規(guī)定,允許通過“5/y*x”參數(shù)來定義光學(xué)元件側(cè)面的最大缺陷尺寸: ? \"x\"表示缺陷對應(yīng)正方形的邊長:例如標(biāo)注5/0.016表示允許的缺陷面積
    發(fā)表于 06-03 08:51

    迅為RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)引入

    迅為RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)引入
    的頭像 發(fā)表于 05-29 14:05 ?467次閱讀
    迅為RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API<b class='flag-5'>函數(shù)</b>的<b class='flag-5'>引入</b>

    LTspice里壓敏電阻MOV怎么引入?

    LTspice里壓敏電阻MOV怎么引入
    發(fā)表于 04-28 08:26

    芯片離子注入后退火會引入的工藝問題

    本文簡單介紹了芯片離子注入后退火會引入的工藝問題:射程末端(EOR)缺陷、硼離子注入退火問題和磷離子注入退火問題。
    的頭像 發(fā)表于 04-23 10:54 ?605次閱讀
    芯片離子注入后退火會<b class='flag-5'>引入</b>的工藝問題

    SMA接頭的優(yōu)勢和缺陷

    SMA接頭以其高精密性、良好的可靠性、穩(wěn)定性好等特點(diǎn),在電子元器件領(lǐng)域應(yīng)用廣泛。但在使用過程中,因其材質(zhì)及生產(chǎn)工藝的影響,在應(yīng)用中,SMA接頭不可避免的會顯露出一些缺陷,今天我們就一起來看看SMA接頭在應(yīng)用領(lǐng)域到底有哪些缺陷以及產(chǎn)生這些
    的頭像 發(fā)表于 02-15 11:11 ?716次閱讀
    SMA接頭的優(yōu)勢和<b class='flag-5'>缺陷</b>

    EE-32:語言擴(kuò)展:內(nèi)存存儲類型、ASM和內(nèi)聯(lián)構(gòu)造

    電子發(fā)燒友網(wǎng)站提供《EE-32:語言擴(kuò)展:內(nèi)存存儲類型、ASM和內(nèi)聯(lián)構(gòu)造.pdf》資料免費(fèi)下載
    發(fā)表于 01-14 15:03 ?0次下載
    EE-32:語言擴(kuò)展:內(nèi)存存儲類型、ASM和<b class='flag-5'>內(nèi)聯(lián)</b>構(gòu)造

    硅的晶體缺陷測量方法

    半導(dǎo)體晶體在生長和加工過程中會產(chǎn)生多種結(jié)構(gòu)缺陷,這些缺陷對集成電路(IC)器件的性能和合格率有著重要影響。因此,對晶體缺陷的觀察、檢測及研究至關(guān)重要。硅作為半導(dǎo)體材料的重要代表,其晶體缺陷
    的頭像 發(fā)表于 12-27 09:24 ?957次閱讀
    硅的晶體<b class='flag-5'>缺陷</b>測量方法

    A/B型缺陷和D/V類缺陷介紹

    在直拉法(cz)和區(qū)熔法(Fz)制成的單晶硅錠中內(nèi)生微缺陷都由V/G控制,其中,V是結(jié)晶前沿晶體生長速率,G是晶體中固液界面附近的軸向溫度梯度。 如果V/G低于臨界值,則形成的缺陷為A型漩渦缺陷或B
    的頭像 發(fā)表于 11-14 16:41 ?984次閱讀
    A/B型<b class='flag-5'>缺陷</b>和D/V類<b class='flag-5'>缺陷</b>介紹

    一文詳解SiC的晶體缺陷

    SiC晶體中存在各種缺陷,對SiC器件性能有直接的影響。研究清楚各類缺陷的構(gòu)成和生長機(jī)制非常重要。本文帶你了解SiC的晶體缺陷及其如何影響SiC器件特性。
    的頭像 發(fā)表于 11-14 14:53 ?2267次閱讀
    一文詳解SiC的晶體<b class='flag-5'>缺陷</b>

    SUMIF函數(shù)與SUMIFS函數(shù)的區(qū)別

    SUMIF函數(shù)和SUMIFS函數(shù)都是Excel中用于條件求和的函數(shù),它們可以幫助用戶根據(jù)特定的條件對數(shù)據(jù)進(jìn)行求和。盡管它們的基本功能相似,但在使用場景和功能上存在一些差異。以下是對這兩個(gè)函數(shù)
    的頭像 發(fā)表于 10-30 09:51 ?7545次閱讀

    科技擬收購APCB 100%股權(quán)

    科技近期發(fā)布重要公告,宣布其計(jì)劃通過全資子公司新加坡勝及PSL,以不超過2.787億元人民幣的現(xiàn)金,全面收購APCB Electronics(Thailand)Co.,Ltd.(簡稱APCB)的100%股權(quán)。此次收購標(biāo)志著勝
    的頭像 發(fā)表于 08-12 15:06 ?1119次閱讀

    TC387中有__disable_interrupts()關(guān)閉所有中斷和打開所有中斷的函數(shù)嗎?

    TC387 芯片中有__disable_irq()和__enable_irq()關(guān)閉所有中斷和打開所有中斷的函數(shù)嗎,請告知
    發(fā)表于 08-01 08:22