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

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

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

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

宏和函數(shù)應(yīng)該怎么選

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

掃碼添加小助手

加入工程師交流群

今天我們來看一下利用宏定義編寫類似函數(shù)調(diào)用的方法和真實的函數(shù)有什么區(qū)別。

一、宏和函數(shù)怎么選?

首先來看一個例子:

#define N 2+2
void main()
{    
    int a = N * N;    
    printf( "a = %d", a);
}

這里,我們得理解宏的工作方式,它是在編譯器編譯代碼之前做的一個純文本的替換工作,因此,有時候簡單宏替換的結(jié)果就會和我們預(yù)想的結(jié)果出現(xiàn)偏差。

比如上面的例子,我們預(yù)期 N 為 4,a=16,但實際結(jié)果卻為 a=8;原因在于宏的作用方式是傻瓜式的文本替換。

在編譯之前,編譯器首先將宏定義的文本替換到程序體中,這個替換是完全無腦的一個操作,看一下替換結(jié)果就知道了。

#define N 2+2
void main()
{    
    int a = 2 + 2 * 2 + 2;    
    printf( "a = %d", a);
}

這也就是我們上一篇文章中講到的,寫宏函數(shù)的時候一定要注意括號的應(yīng)用,多加括號一定是利大于弊的。

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

    關(guān)注

    3

    文章

    4417

    瀏覽量

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

    關(guān)注

    30

    文章

    4970

    瀏覽量

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

    關(guān)注

    1

    文章

    1672

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    微科技首家歐洲全資子公司正式成立

    在國家積極鼓勵企業(yè)“走出去”及共建“一帶一路”倡議的宏大背景下,國內(nèi)功率半導(dǎo)體領(lǐng)域的領(lǐng)先企業(yè)——江蘇微科技股份有限公司(以下簡稱“微科技”)今日宣布,其首家歐洲全資子公司 MacMic
    的頭像 發(fā)表于 03-04 11:06 ?461次閱讀

    室外用電線應(yīng)該什么樣的

    不易氧化斷芯,適合戶外固定布線或長距離供電。 鋁芯電線:重量輕、成本低,但導(dǎo)電性較差,易氧化,適合臨時用電或短距離低壓場景(如臨時燈帶)。 推薦:優(yōu)先銅芯,確保供電穩(wěn)定性和壽命。 絕緣與護套材質(zhì) PVC(聚氯乙烯):耐候性一
    的頭像 發(fā)表于 01-15 10:13 ?502次閱讀

    別漏看!廣東展告訴你高低溫試驗箱這些被忽視的性能細(xì)節(jié)

    客戶最易忽略的性能細(xì)節(jié)疑問1、“設(shè)備的噪音和能耗在長期使用中影響大嗎?”解答:實驗室場景噪音≤65dB的設(shè)備(展采用靜音壓縮機+隔音箱體設(shè)計),能耗看COP值(制冷性能系數(shù)),展設(shè)備COP
    的頭像 發(fā)表于 12-30 09:46 ?195次閱讀
    別漏看!廣東<b class='flag-5'>宏</b>展告訴你高低溫試驗箱這些被忽視的性能細(xì)節(jié)

    C語言中實現(xiàn)函數(shù)的三種方式

    用 ; 的調(diào)用方式無論從程序閱讀還是使用方法方面都是十分別扭的;而規(guī)定必須使用帶花括號的 if 的調(diào)用方式有違常理的,因為函數(shù)應(yīng)該適用于任何語法。 優(yōu)缺點總結(jié): 優(yōu)點:簡單粗暴。 缺點:不能在無花括號且有
    發(fā)表于 12-29 07:34

    選購不迷茫:廣東展科技總結(jié)出通用技術(shù)規(guī)格選購關(guān)鍵疑問指南

    以下從客戶視角出發(fā),梳理不同行業(yè)在高低溫試驗箱技術(shù)規(guī)格與性能上的核心疑問、選購判斷標(biāo)準(zhǔn),結(jié)合展產(chǎn)品優(yōu)勢給出解答,貼合實際采購決策場景:通用核心技術(shù)規(guī)格疑問1、溫域范圍怎么?是否越寬越好?客戶疑問
    的頭像 發(fā)表于 12-27 09:38 ?174次閱讀
    選購不迷茫:廣東<b class='flag-5'>宏</b>展科技總結(jié)出通用技術(shù)規(guī)格選購關(guān)鍵疑問指南

    C語言拼接運算符典型使用

    在C語言中,##運算符(稱為[size=16.002px]標(biāo)記拼接運算符)用于定義中將兩個標(biāo)記(token)拼接成一個新的標(biāo)記。它在預(yù)處理階段處理,常用于動態(tài)生成變量名、函數(shù)名或類型名,以提高代碼
    發(fā)表于 11-20 08:27

    應(yīng)用層外設(shè)進行數(shù)據(jù)傳輸,是否應(yīng)該調(diào)用rt_device_create,rt_device_register等函數(shù)呢?

    假如我要在應(yīng)用層用一個新的usart2串口傳輸數(shù)據(jù),那我應(yīng)該是怎么做? 1.在工程未編譯前將usart2加上,即定義BSP_USING_UART2,利用RT-Thread在硬件初始化
    發(fā)表于 10-11 06:29

    在rtthread的main函數(shù)里用HAL_Delay函數(shù)不起作用是哪里的問題?

    函數(shù)就沒有這個問題。 求大佬提供解決方法 CUBMX的timbase source時鐘源的是Systick,優(yōu)先級是15 main函數(shù)里代碼如下 運行結(jié)果如下(一秒打印了幾百
    發(fā)表于 09-15 07:53

    詳解hal_entry入口函數(shù)

    當(dāng)使用RTOS時,程序從main函數(shù)開始進行線程調(diào)度;當(dāng)沒有使用RTOS時,C語言程序的入口函數(shù)main函數(shù)調(diào)用了hal_entry函數(shù)。由于我們新建的工程是沒有選用RTOS的,因此,
    的頭像 發(fā)表于 07-25 15:34 ?2026次閱讀

    C語言中的內(nèi)聯(lián)函數(shù)

    在C編程中,內(nèi)聯(lián)函數(shù)都用于避免函數(shù)調(diào)用的開銷并編寫可復(fù)用的邏輯部分,但它們在工作方式和安全性方面存在顯著差異。
    的頭像 發(fā)表于 07-25 15:10 ?1926次閱讀
    C語言中的內(nèi)聯(lián)<b class='flag-5'>函數(shù)</b>與<b class='flag-5'>宏</b>

    使用 BSP 助手創(chuàng)建項目并創(chuàng)建 BSP 后,我應(yīng)該在哪里更改 cy_device_headers.h 中列出的設(shè)備名稱?

    使用 BSP 助手創(chuàng)建項目并創(chuàng)建 BSP 后,我應(yīng)該在哪里更改 cy_device_headers.h 中列出的設(shè)備名稱?例如,我想手動將設(shè)備名稱從 CY8C4024FNI_S402 更改
    發(fā)表于 06-26 06:06

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

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

    詳解RTOS中的Hook函數(shù)

    Hook函數(shù)是RTOS中的一個關(guān)鍵特性,通過該函數(shù),用戶可以增強對任務(wù)管理的控制,定義系統(tǒng)行為。
    的頭像 發(fā)表于 03-24 16:14 ?1098次閱讀

    使用cubemx配置硬件spi使用硬件nss片,片一直是低的,不能置高,這正常嗎?

    使用cubemx 配置硬件spi 使用硬件nss片,按照道理來講應(yīng)該是讀寫的時候 片拉低,但是現(xiàn)在的現(xiàn)象是,片一直是低的,不能置高。用的是硬件片
    發(fā)表于 03-14 06:07

    在STM32H5上使用fatfs寫函數(shù)時用不了DMA的寫方式,應(yīng)該怎么使用呢?

    請問在STM32H5上使用fatfs寫函數(shù)時,用不了DMA的寫方式,應(yīng)該怎么使用呢,有人遇到過類似的問題嘛
    發(fā)表于 03-12 07:10