日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转】 嵌入式C语言编程中Inline函数的应用

發(fā)布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】 嵌入式C语言编程中Inline函数的应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

源地址:https://blog.csdn.net/vigour1000/article/details/9622037

?

?有一段兒時間沒寫寫經(jīng)驗(yàn)筆記了,哎,也是自己這一段時間以來(其實(shí)最近一直是這個狀態(tài))一直被找工作的氛圍所影響吧,鮮有時間能靜下心來翻翻文章、看看手冊、搞搞開發(fā),這點(diǎn)上我在看了yulzhu的《假期閑話》一文中深有感觸(有興趣可以移步看看,http://blog.chinaaet.com/detail/30099.html),好文章的靈感離不開平時豐厚的積累和大量的閱讀,而當(dāng)我們的積累被消耗的差不多的時候就會遇到瓶頸(咳咳,通俗了講就是卡殼了,呵呵),這個時候需要大量的實(shí)踐和閱讀來補(bǔ)充。所以前一段時間不平靜期一定程度上影響了自己系列博客的產(chǎn)出數(shù)量和質(zhì)量(從零入手系列就因此讓我暫時停滯了下來,不過等元旦之后一切穩(wěn)定下來的時候我會繼續(xù)更新的,一直積攢了一些,到時候會連續(xù)爆出猛料的,敬請期待,呵呵),今兒就暫時靜下心來跟大家分享一點(diǎn)工程經(jīng)驗(yàn)吧~

? ? 前些日子在網(wǎng)上看些資料的時候,無意中邂逅了Inline函數(shù)(即內(nèi)聯(lián)函數(shù)),然后又近一步的搜了搜相關(guān)資料進(jìn)行了深入的了解,然而不了解不知道一了解嚇一跳,呵呵,之后就把它當(dāng)作了寶貝似的收藏了起來(咳咳,自己又沒出息了,大牛們?nèi)绻吹搅瞬灰拇u)。好東西不敢獨(dú)享,所以今兒就把自己關(guān)于Inline函數(shù)的經(jīng)驗(yàn)筆記分享一下,畢竟大家好才是真的好嘛,哈哈,下面進(jìn)入正題:

首先介紹下相關(guān)背景,Inline函數(shù),即內(nèi)聯(lián)函數(shù),它是把函數(shù)內(nèi)部的代碼直接插入到調(diào)用者代碼處的函數(shù),也就是該函數(shù)不是通過子函數(shù)調(diào)用這種常見的方式來實(shí)現(xiàn)的,而是直接替換到函數(shù)調(diào)用處(這點(diǎn)上有點(diǎn)類似#define宏),由此帶來的優(yōu)勢就是省去了調(diào)用/返回指令,通過避免調(diào)用帶來的開銷(包括函數(shù)調(diào)用帶來的額外的執(zhí)行周期和堆棧的使用)來提高代碼的執(zhí)行效率,而又同時保留了函數(shù)封裝形式帶來的可讀性,很好用吧有木有,下面就讓我們看看具體的使用形式:

?

/****************函數(shù)聲明部分*****************/ void delay(void);//delay函數(shù)聲明,此處不用加Inline關(guān)鍵詞 void main(void) { /***************Insert your code in the following***************/ EnableInterrupts; while(1) { ?? testPoint = 0; delay();//定義了inline的delay函數(shù),在編譯連接的時候就會直接嵌入到該行代碼處,而不是通過調(diào)用實(shí)現(xiàn) } } /**注意關(guān)鍵字inline 必須與函數(shù)定義體放在一起才能使函數(shù)成為內(nèi)聯(lián),將inline 放在函數(shù)聲明前面不起任何作用**/ inline?void delay(void) { uint8 i=0; while((i++)!=200); } 上面就是我們使用inline內(nèi)聯(lián)函數(shù)的方法,很簡單卻很管用,不過inline內(nèi)聯(lián)函數(shù)內(nèi)部不能用復(fù)雜的運(yùn)算,這算是一個限制了吧,不然豈不是都爭搶著用了,呵呵。另外可能還有人會問,既然Inline函數(shù)與#define宏的功能類似,那為什么不用#define宏呢,我的回答只能說是用inline更快且不容易出錯,至于具體原因有興趣的博友可以google一下,俺就不多說了。。。

轉(zhuǎn)載于:https://www.cnblogs.com/maxpak/p/11106068.html

總結(jié)

以上是生活随笔為你收集整理的【转】 嵌入式C语言编程中Inline函数的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。