性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

程序小白
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
所在專題目錄 查看專題
不一樣的宏定義(C語(yǔ)言小知識(shí))
函數(shù)的調(diào)用和回調(diào)(OS小知識(shí))
C語(yǔ)言指針數(shù)組(C語(yǔ)言小知識(shí))
C語(yǔ)言中函數(shù)調(diào)用與堆棧詳解
被C標(biāo)準(zhǔn)和編譯器選項(xiàng)給狠狠的上了一課
extern "C" 的意義?——盤一下GCC!
作者動(dòng)態(tài) 更多
基于stm32采用PWM驅(qū)動(dòng)伺服控制器學(xué)習(xí)筆記
5天前
基于STM32驅(qū)動(dòng)TM1638學(xué)習(xí)筆記——軟件篇
04-19 12:42
基于TM1638驅(qū)動(dòng)8位數(shù)碼管設(shè)計(jì)分享
02-24 11:26
RT-Thread驅(qū)動(dòng)之路: Studio創(chuàng)建FAL分區(qū)⑤
01-02 08:30
RT-Thread驅(qū)動(dòng)之路: Studio 掛載通用SPI flash④
2024-12-23 13:41

不一樣的宏定義(C語(yǔ)言小知識(shí))

   好久沒開文章了,有點(diǎn)手生,小伙伴們周末好,今天給大家分享一下宏定義,原本以為是很簡(jiǎn)單的小知識(shí)點(diǎn),最近在別人的構(gòu)架里發(fā)現(xiàn)看不懂了,發(fā)現(xiàn)了新大陸,必須拿來分享一下,首先來一下我們經(jīng)常用到的宏定義,經(jīng)常把常數(shù)定義成一個(gè)宏,如下:

   #define MY_FIRST_MACRO  1  //(非常簡(jiǎn)單吧)

   接下來看看最近我在分析QF框架時(shí)的境遇吧,對(duì)于QF來講,因?yàn)樗鰰r(shí)間管理,所以需要一個(gè)QF_tick()處理,隨便打開了一個(gè)bsp.c如下:

  

   第一眼看上去他應(yīng)該是函數(shù)吧,我們跟進(jìn)去看一下定義是啥:

   

   我的天,他居然是一個(gè)宏,他居然不大寫。。??匆幌潞竺娲髮懙哪莻€(gè)家伙:

   他居然是個(gè)函數(shù),注意他居然是個(gè)全大寫的函數(shù),驚不驚喜意不意外,接下來我們作者為啥要這么干。

   假如你一直都是些單片機(jī)軟件,你可能會(huì)非常的迷糊,為啥要搞得這么復(fù)雜的宏,這里直接告訴你答案,因?yàn)橐浦?,移植,移植,到不同的硬件平臺(tái)上去,作者寫的構(gòu)架是一個(gè)通用的產(chǎn)物,那么不光單片機(jī)能用,PC(Linux、windows)都要能用,才是他的目的。

   假如換了多年前的我,我會(huì)想那么一個(gè)平臺(tái)一個(gè)bsp包多么簡(jiǎn)單,不用那么復(fù)雜的宏進(jìn)行替換,一眼到底多清爽,十幾個(gè)平臺(tái)就會(huì)有十幾個(gè)包,修改一點(diǎn)配置也要多一個(gè)包,他最終會(huì)膨脹到你無法想象的數(shù)量,所以兼容這個(gè)事情雖然難,也必須要做。

   接下來我們總結(jié)一下宏,定義一個(gè)宏的目的,并不是讓你知道他是一個(gè)常量或者是一個(gè)函數(shù)、一段代碼,只是通過一個(gè)別名告訴你這段代碼是干什么用的,他的初衷并不是希望你單步跟進(jìn)去看看是怎么實(shí)現(xiàn)的,而是讓你對(duì)這段代碼整體的功能有個(gè)大體的理解。

   宏不一定非要大寫,函數(shù)也不一定非要小寫,有些特殊的場(chǎng)景,我們需要忘掉那些腦袋中那些常規(guī)的套路。

   也就是說一個(gè)宏,可以是一個(gè)常量,一段代碼或者一個(gè)函數(shù)等等。第二點(diǎn),宏定義用的是#define進(jìn)行定義,也就是說宏定義是一個(gè)預(yù)處理命令,他最終會(huì)在真正的編譯之前幫你配置出真正需要編譯的代碼,那個(gè)唯一配置的包。

   最終作者希望達(dá)到的效果是,不管你有多少款板子,多少種配置,基于一個(gè)通用的SDK源碼包,通過簡(jiǎn)單的宏定義命令就可以組織出一個(gè)你想要的工程。

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 7
收藏 7
關(guān)注 150
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧