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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

首先來看一個(gè)例子:

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

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

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

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

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

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

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

    關(guān)注

    3

    文章

    4401

    瀏覽量

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

    關(guān)注

    30

    文章

    4925

    瀏覽量

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

    關(guān)注

    1

    文章

    1665

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

    詳解hal_entry入口函數(shù)

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

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

    在C編程中,內(nèi)聯(lián)函數(shù)都用于避免函數(shù)調(diào)用的開銷并編寫可復(fù)用的邏輯部分,但它們?cè)诠ぷ鞣绞胶桶踩苑矫娲嬖陲@著差異。
    的頭像 發(fā)表于 07-25 15:10 ?1634次閱讀
    C語言中的內(nèi)聯(lián)<b class='flag-5'>函數(shù)</b>與<b class='flag-5'>宏</b>

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

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

    明電子創(chuàng)業(yè)板IPO獲得受理

    近日,深交所官網(wǎng)顯示,成都明電子股份有限公司(以下簡(jiǎn)稱“明電子”)創(chuàng)業(yè)板IPO獲得受理。
    的頭像 發(fā)表于 06-06 11:16 ?860次閱讀

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

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

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

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

    LED戶外顯示屏應(yīng)該什么樣的比較好呢?

    戶外LED顯示屏應(yīng)該什么樣的比較好呢?LED電子大屏幕是科技與媒體的完美結(jié)合,它能把夢(mèng)幻、科技、潮流、時(shí)尚的理念淋淋盡致地展現(xiàn)出來, 完全可以當(dāng)仁不讓地成為舞美新勢(shì)力新的室內(nèi)大型LED屏幕
    的頭像 發(fā)表于 02-13 14:58 ?1176次閱讀
    LED戶外顯示屏<b class='flag-5'>應(yīng)該</b><b class='flag-5'>選</b>什么樣的比較好呢?

    是德33220A 函數(shù)任意波形發(fā)生器

    是德33220A 函數(shù)任意波形發(fā)生器 儀器特性 *33220A 函數(shù)發(fā)生器包括 USB、GPIB 和 LAN 接口 *用于信號(hào)設(shè)置視覺驗(yàn)證的圖形模式 *件 001 提供支持同步信道的多元鏈路
    的頭像 發(fā)表于 02-07 15:55 ?581次閱讀

    景智駕總部落地衢州

    近日,景智駕衢州總部落地儀式在南孔圣地衢州東方橋庵里大酒店盛大舉行!衢州智造新城黨工委副書記、管委會(huì)常務(wù)副主任巫建民與景智駕創(chuàng)始人及CEO劉飛龍博士共同為落地儀式剪彩。
    的頭像 發(fā)表于 12-24 17:10 ?1114次閱讀

    ADS1282沒有CS片,應(yīng)該怎樣單獨(dú)給DAC傳輸數(shù)據(jù)呢?

    請(qǐng)問DAC1282和ADS1282的SCLK、DIN、DOUT可以接到一起,然后分別連接MCU的SCK、SOMI、SIMO嗎? 如果可以的話,ADS1282沒有CS片應(yīng)該怎樣單獨(dú)給DAC傳輸數(shù)據(jù)呢? 謝謝
    發(fā)表于 11-25 07:35

    SUMIF函數(shù)對(duì)比VLOOKUP的優(yōu)勢(shì)

    在Excel中,數(shù)據(jù)管理和分析是日常工作中不可或缺的一部分。SUMIF函數(shù)和VLOOKUP函數(shù)是兩個(gè)非常受歡迎的函數(shù),它們可以幫助用戶快速地處理和分析數(shù)據(jù)。盡管它們都可以用于查找和匯總數(shù)據(jù),但它們?cè)?/div>
    的頭像 發(fā)表于 11-11 09:16 ?1569次閱讀

    SUMIF函數(shù)與SUMIFS函數(shù)的區(qū)別

    SUMIF函數(shù)和SUMIFS函數(shù)都是Excel中用于條件求和的函數(shù),它們可以幫助用戶根據(jù)特定的條件對(duì)數(shù)據(jù)進(jìn)行求和。盡管它們的基本功能相似,但在使用場(chǎng)景和功能上存在一些差異。以下是對(duì)這兩個(gè)函數(shù)
    的頭像 發(fā)表于 10-30 09:51 ?9299次閱讀

    SUMIF函數(shù)使用教程

    SUMIF函數(shù)是Excel中非常實(shí)用的函數(shù)之一,能夠根據(jù)指定條件對(duì)數(shù)據(jù)進(jìn)行篩選和求和操作。以下是對(duì)SUMIF函數(shù)使用方法的詳細(xì)教程: 一、基本語法 SUMIF函數(shù)的基本語法為: =SU
    的頭像 發(fā)表于 10-30 09:50 ?6291次閱讀