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

chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

預(yù)處理宏的優(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)用會帶來額外的開銷,他需要開辟新的??臻g,記錄返回值,還需要將形參壓入棧中,函數(shù)返回時還需要釋放堆??臻g。

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

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

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

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

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

看下面的例子:

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

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

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

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

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

    關(guān)注

    3

    文章

    4406

    瀏覽量

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

    關(guān)注

    30

    文章

    4941

    瀏覽量

    73152
  • 預(yù)處理
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    鋰電池制造 | 電芯預(yù)處理工藝的步驟詳解

    電芯預(yù)處理是鋰電池包制造的首要工序,無論是新能源汽車的續(xù)航穩(wěn)定性,還是儲能系統(tǒng)的循環(huán)壽命,其根基都可追溯至預(yù)處理工序?qū)﹄娦疽恢滦缘陌芽兀浜诵脑谟谕ㄟ^系統(tǒng)檢測與篩選消除量產(chǎn)電芯的性能差異,為后續(xù)組裝
    的頭像 發(fā)表于 08-11 14:53 ?886次閱讀
    鋰電池制造 | 電芯<b class='flag-5'>預(yù)處理</b>工藝的步驟詳解

    PCBA 表面處理優(yōu)缺點大揭秘,應(yīng)用場景全解析

    一站式PCBA加工廠家今天為大家講講PCBA加工如何選擇合適的表面處理工藝?PCBA表面處理優(yōu)缺點與應(yīng)用場景。在電子制造中,PCBA板的表面處理工藝對電路板的性能、可靠性和成本都有重要
    的頭像 發(fā)表于 05-05 09:39 ?1141次閱讀
    PCBA 表面<b class='flag-5'>處理</b>:<b class='flag-5'>優(yōu)缺點</b>大揭秘,應(yīng)用場景全解析

    3D打印耗材種類哪些?各有什么優(yōu)缺點

    這篇文章將為你詳細介紹3D打印耗材的基礎(chǔ)知識,幫助你了解這些材料的特性、優(yōu)缺點以及它們適合的應(yīng)用場景。
    的頭像 發(fā)表于 04-29 09:40 ?8907次閱讀
    3D打印耗材種類<b class='flag-5'>有</b>哪些?各有什么<b class='flag-5'>優(yōu)缺點</b>?

    FPGA Verilog HDL語法之編譯預(yù)處理

    Verilog HDL語言和C語言一樣也提供了編譯預(yù)處理的功能?!熬幾g預(yù)處理”是Verilog HDL編譯系統(tǒng)的一個組成部分。Verilog HDL語言允許在程序中使用幾種特殊的命令(它們不是一般
    的頭像 發(fā)表于 03-27 13:30 ?1089次閱讀
    FPGA Verilog HDL語法之編譯<b class='flag-5'>預(yù)處理</b>

    CMOS,Bipolar,F(xiàn)ET這三種工藝的優(yōu)缺點是什么?

    在我用photodiode工具選型I/V放大電路的時候,系統(tǒng)給我推薦了AD8655用于I/V,此芯片為CMOS工藝 但是查閱資料很多都是用FET工藝的芯片,所以請教下用于光電信號放大轉(zhuǎn)換(主要考慮信噪比和帶寬)一般我們用哪種工藝的芯片, CMOS,Bipolar,F(xiàn)ET這三種工藝的優(yōu)缺點是什么?
    發(fā)表于 03-25 06:23

    壓接連接器使用裸銅線的優(yōu)缺點分析?

    壓接連接器使用裸銅線是一種高效、可靠的電氣連接方式,廣泛應(yīng)用于電力、通信和工業(yè)領(lǐng)域。需要我們正確看待它的優(yōu)缺點,高效使用。
    的頭像 發(fā)表于 03-18 11:01 ?844次閱讀

    淺談汽車系統(tǒng)電壓優(yōu)缺點分析

    以下是12V、24V、48V系統(tǒng)的簡單介紹,包括技術(shù)特點、優(yōu)缺點及典型應(yīng)用場景。汽車電氣系統(tǒng)的發(fā)展隨著車輛電子設(shè)備的增多和對能效要求的提高,電壓等級也在逐步提升,從傳統(tǒng)的12V電
    的頭像 發(fā)表于 03-06 08:04 ?1365次閱讀
    淺談汽車系統(tǒng)電壓<b class='flag-5'>優(yōu)缺點</b>分析

    惠斯通電橋的優(yōu)缺點分析

    惠斯通電橋作為一種經(jīng)典的電阻測量工具,具有其獨特的優(yōu)缺點。以下是對惠斯通電橋優(yōu)缺點的詳細分析: 優(yōu)點 高精度 : 惠斯通電橋通過比較電壓差來精確測量電阻值,對于微小的電阻變化也能迅速作出反應(yīng),因此
    的頭像 發(fā)表于 02-13 15:26 ?2021次閱讀

    硅谷物理服務(wù)器的優(yōu)缺點分析

    硅谷物理服務(wù)器因其高性能、高質(zhì)量和先進的技術(shù)支持而在全球范圍內(nèi)享有很高的聲譽。硅谷物理服務(wù)器的優(yōu)缺點分析如下,主機推薦小編為您整理發(fā)布硅谷物理服務(wù)器的優(yōu)缺點分析。
    的頭像 發(fā)表于 02-12 09:30 ?566次閱讀

    香港主機托管和國內(nèi)主機的優(yōu)缺點比較

    香港主機托管和國內(nèi)主機(以大陸主機為例)的優(yōu)缺點比較,主機推薦小編為您整理發(fā)布香港主機托管和國內(nèi)主機的優(yōu)缺點比較,希望對您有幫助。
    的頭像 發(fā)表于 02-05 17:42 ?688次閱讀

    東京站群服務(wù)器哪些優(yōu)缺點

    東京站群服務(wù)器,作為部署在東京地區(qū)的服務(wù)器集群,專為站群優(yōu)化而建,其優(yōu)缺點如下,主機推薦小編為您整理發(fā)布東京站群服務(wù)器哪些優(yōu)缺點。
    的頭像 發(fā)表于 02-05 17:39 ?596次閱讀

    光纖通道衰耗正常范圍,光纖通道優(yōu)缺點

    在數(shù)據(jù)通信領(lǐng)域,光纖通道以其高速率、大帶寬、低衰減和高可靠性等優(yōu)勢,逐漸成為現(xiàn)代數(shù)據(jù)中心和企業(yè)網(wǎng)絡(luò)中的首選解決方案。然而,光纖通道的衰耗問題及其優(yōu)缺點的理解,對于確保系統(tǒng)的穩(wěn)定性和性能至關(guān)重要。本文將深入探討光纖通道的衰耗正常范圍,同時詳細分析其優(yōu)缺點。
    的頭像 發(fā)表于 01-29 15:26 ?2425次閱讀

    光譜傳感器的優(yōu)缺點

    光譜傳感器是一種能夠檢測并響應(yīng)光譜范圍內(nèi)不同波長光線的傳感器。以下是對其優(yōu)缺點的詳細分析:
    的頭像 發(fā)表于 01-27 15:28 ?1266次閱讀

    DFT的優(yōu)缺點比較 DFT在機器學(xué)習中的應(yīng)用

    DFT(離散傅里葉變換)的優(yōu)缺點比較 優(yōu)點 頻域分析 :DFT能夠?qū)⑿盘枏臅r域轉(zhuǎn)換到頻域,這對于分析信號的頻率成分非常有用。 線性和時不變性 :DFT是線性和時不變的,這意味著它滿足疊加原理,對于
    的頭像 發(fā)表于 12-20 09:22 ?3409次閱讀

    SMD與DIP元件的優(yōu)缺點比較 SMD元件在LED燈具中的應(yīng)用

    SMD與DIP元件的優(yōu)缺點比較 SMD元件的優(yōu)缺點 優(yōu)點 : 體積小巧 :SMD(Surface Mount Device)元件的體積通常很小,這使得它們能夠在有限的空間內(nèi)安裝更多的元件,從而
    的頭像 發(fā)表于 12-13 09:38 ?1930次閱讀