(b) ? (a) : (b) ) //把它用函數(shù)來實現(xiàn): int max( int a, int b){ return (a > b ? a : b);} 如果我們在程序中將要使用比較大小的函數(shù),我們顯然會選用上面的宏定義,理由如下: 首先,函數(shù)調(diào)用會帶來額外的開銷,他需要開" />

色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

預處理宏的優(yōu)缺點有哪些

麥辣雞腿堡 ? 來源:軒哥談芯 ? 作者:軒哥談芯 ? 2023-11-01 17:44 ? 次閱讀

預處理宏的優(yōu)缺點

在軟件開發(fā)過程中,經(jīng)常有一些常用或者通用的功能或者代碼段,這些功能既可以寫成函數(shù),也可以封裝成為宏定義。那么究竟是用函數(shù)好,還是宏定義好?

我們還是看上一篇文章中引用的比較大小的例子:

#define MAX( a, b) ( (a) > (b) ? (a) : (b) )
//把它用函數(shù)來實現(xiàn):
int max( int a, int b)
{  
    return (a > b ? a : b);
}

如果我們在程序中將要使用比較大小的函數(shù),我們顯然會選用上面的宏定義,理由如下:

首先,函數(shù)調(diào)用會帶來額外的開銷,他需要開辟新的棧空間,記錄返回值,還需要將形參壓入棧中,函數(shù)返回時還需要釋放堆棧空間。

這樣的開銷不僅會讓程序執(zhí)行效率變低,代碼量也會大大增加,因此使用上面的宏函數(shù)做文本替代就顯得更明智。

其次,函數(shù)的形參被聲明成了一個特定的類型,如例子中是 int,這樣如果我們軟件中需要使用浮點型的比較大小,我們就不得不重寫一個函數(shù),從這一點也可以看到宏函數(shù)的優(yōu)勢。

因為是文本的替換,因此他與類型也沒有關系,不過類型不對應,會在編譯階段的時候報錯,這點還是具備利用價值的。

另外,還有一些任務根本無法用函數(shù)實現(xiàn)****,但是用宏定義卻很好實現(xiàn)。

比如參數(shù)類型沒法作為參數(shù)傳遞給函數(shù),但是可以把參數(shù)類型傳遞給帶參的宏。

看下面的例子:

#define MALLOC(n, type )((type ) malloc((n)sizeof( type )))

利用這個宏,我們就可以為任何類型分配一段我們指定的空間大小,并返回指向這段空間的指針。我們可以觀察一下這個宏確切的工作過程:

int *ptr;
ptr = MALLOC ( 5, int );
//將這宏展開以后的結果:
ptr = (int *) malloc ((5) * sizeof(int));

這個例子是宏定義的經(jīng)典應用之一,完成了函數(shù)不能完成的功能,但是宏定義也不能濫用,通常,如果相同的代碼需要出現(xiàn)在程序的幾個地方,更好的方法是把它實現(xiàn)為一個函數(shù)。

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

    關注

    3

    文章

    4327

    瀏覽量

    62573
  • 代碼
    +關注

    關注

    30

    文章

    4779

    瀏覽量

    68527
  • 預處理
    +關注

    關注

    0

    文章

    33

    瀏覽量

    10478
收藏 人收藏

    評論

    相關推薦

    開環(huán)和閉環(huán)功放的區(qū)別,優(yōu)缺點,應用場合什么不同?

    問下TI的工程師,開環(huán)和閉環(huán)功放的區(qū)別,優(yōu)缺點,應用場合什么不同?請解釋下,謝謝!
    發(fā)表于 11-04 06:33

    請問Pre-Filter PBTL和Post-Filter PBTL相比什么優(yōu)缺點

    Pre-Filter PBTL和Post-Filter PBTL 相比什么優(yōu)缺點
    發(fā)表于 10-18 06:54

    帶你了解無刷電機與刷電機的優(yōu)缺點

    無刷電機和刷電機各有其獨特的優(yōu)缺點,選擇哪種電機類型取決于具體的應用場景和需求。
    的頭像 發(fā)表于 09-21 11:24 ?761次閱讀

    運放恒流源哪些優(yōu)缺點

    運放恒流源,即利用運算放大器(Operational Amplifier,簡稱運放)構成的恒流源電路,具有一系列獨特的優(yōu)點和缺點。以下是對其優(yōu)缺點的詳細分析。
    的頭像 發(fā)表于 08-28 10:18 ?1108次閱讀

    放大器增益調(diào)節(jié)哪些優(yōu)缺點

    放大器增益調(diào)節(jié)的優(yōu)缺點是多方面的,這些方面涉及到放大器的性能、應用、設計以及實際使用中的挑戰(zhàn)。
    的頭像 發(fā)表于 08-16 17:14 ?813次閱讀

    GaN HEMT哪些優(yōu)缺點

    GaN HEMT(氮化鎵高電子遷移率晶體管)作為一種先進的功率半導體器件,在電力電子、高頻通信、汽車電子等多個領域展現(xiàn)出了顯著的優(yōu)勢,但同時也存在一些缺點。以下是對GaN HEMT優(yōu)缺點的詳細分析:
    的頭像 發(fā)表于 08-15 11:09 ?1209次閱讀

    同步整流的優(yōu)缺點哪些

    同步整流是一種在數(shù)字電路設計中常用的技術,它通過將電路中的所有信號同步到一個共同的時鐘信號上,來實現(xiàn)信號之間的同步。這種技術在數(shù)字電路設計中具有重要的作用,但同時也存在一些優(yōu)缺點。以下是對同步整流
    的頭像 發(fā)表于 07-09 09:09 ?988次閱讀

    機器視覺控制的優(yōu)缺點哪些

    機器視覺控制是一種利用計算機視覺技術對機器進行控制的方法,它在工業(yè)自動化、機器人技術、智能交通等領域得到了廣泛應用。然而,機器視覺控制也存在一些優(yōu)缺點。本文將詳細介紹機器視覺控制的優(yōu)缺點。 一、機器
    的頭像 發(fā)表于 07-04 10:43 ?716次閱讀

    神經(jīng)網(wǎng)絡算法的優(yōu)缺點哪些

    神經(jīng)網(wǎng)絡算法是一種模擬人腦神經(jīng)元結構的計算模型,廣泛應用于機器學習、深度學習、圖像識別、語音識別等領域。然而,神經(jīng)網(wǎng)絡算法也存在一些優(yōu)缺點。本文將詳細分析神經(jīng)網(wǎng)絡算法的優(yōu)缺點。 一、神經(jīng)網(wǎng)絡算法
    的頭像 發(fā)表于 07-03 09:47 ?1343次閱讀

    數(shù)學建模神經(jīng)網(wǎng)絡模型的優(yōu)缺點哪些

    、預測分析等。然而,神經(jīng)網(wǎng)絡模型也存在一些優(yōu)缺點。本文將詳細分析神經(jīng)網(wǎng)絡模型的優(yōu)缺點。 一、優(yōu)點 強大的非線性擬合能力 神經(jīng)網(wǎng)絡模型具有強大的非線性擬合能力,可以很好地處理復雜的非線性問題。傳統(tǒng)的線性模型在處
    的頭像 發(fā)表于 07-02 11:36 ?896次閱讀

    直線電機哪些優(yōu)缺點

    隨著現(xiàn)代工業(yè)的快速發(fā)展,對于直線運動控制的需求日益增加。直線電機作為一種新型的驅(qū)動裝置,因其獨特的結構和性能優(yōu)勢,正在逐步取代傳統(tǒng)的旋轉(zhuǎn)電機和滾珠絲杠,成為直線運動控制的主流選擇。本文將對直線電機的優(yōu)缺點進行詳細分析,并探討其在實際應用中的注意事項。
    的頭像 發(fā)表于 06-11 18:00 ?2460次閱讀

    nbiot和lora的優(yōu)缺點是什么?

    nbiot和lora的優(yōu)缺點
    發(fā)表于 06-04 06:37

    常用的交換芯片的優(yōu)缺點哪些

    常用的交換芯片在網(wǎng)絡通信中扮演著至關重要的角色,它們負責高速、高效地處理數(shù)據(jù)轉(zhuǎn)發(fā)和交換任務。然而,每種交換芯片都有其獨特的優(yōu)缺點,這取決于其設計、制造工藝以及應用場景。
    的頭像 發(fā)表于 03-22 16:36 ?960次閱讀

    什么是邊緣計算?邊緣計算技術哪些優(yōu)缺點

    什么是邊緣計算?邊緣計算技術哪些優(yōu)缺點? 邊緣計算是一種將計算和數(shù)據(jù)處理能力從傳統(tǒng)的云計算數(shù)據(jù)中心移動到離數(shù)據(jù)源更接近的位置的計算模型。在邊緣計算中,數(shù)據(jù)處理和分析都在離數(shù)據(jù)產(chǎn)生的地
    的頭像 發(fā)表于 02-06 14:38 ?1704次閱讀

    濾波電容不同補償方式優(yōu)缺點對比

    濾波電容不同補償方式優(yōu)缺點對比? 濾波電容是電子電路中常用的元件,用于對信號進行濾波處理。不同的補償方式可以幫助提高濾波電容的性能和穩(wěn)定性。本文將詳細介紹幾種常見的濾波電容補償方式的優(yōu)缺點。 首先
    的頭像 發(fā)表于 01-04 16:00 ?1242次閱讀
    主站蜘蛛池模板: 亚洲午夜久久久久久久久电影网| 护士12p| 日本枯瘦娇小| bbwvideoa欧美老妇| 毛茸茸womansex| 91精品国产91热久久p| 噜噜噜狠狠夜夜躁精品| 中文字幕在线观看网站| 久久综合九色综合国产| 最近的中文字幕2019国语| 理论937| 99久久无码一区人妻A片蜜| 男人和女人全黄一级毛片| 99精品小视频| 青青精品国产自在线拍| 超碰最新网站| 手机在线观看你懂的| 国产精品自拍| 亚洲日本一区二区三区在线不卡 | 美女内射少妇三区五区| 97国内精品久久久久久久影视| 嫩草影院一区| 成人天堂婷婷青青视频在线观看| 色内射无码AV| 国产亚洲精品V在线观看一| 亚洲欧洲久久| 麻豆免费观看高清完整视频| 99er4久久视频精品首页| 飘雪在线观看免费高清完整版韩国 | 国产AV综合手机在线观看| 无人区在线日本高清免费| 国产亚洲视频在线观看| 一边啪啪的一边呻吟声口述| 乱码国产丰满人妻WWW| VIDEOSGGRATIS欧美另类| 三级中国免费的| 国产日韩亚洲精品视频| 伊人久久大香网| 欧美精品v欧洲高清| 国产a在线不卡| 亚洲伊人色综合久久天天伊人|