在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

宏和函數應該怎么選

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

掃碼添加小助手

加入工程師交流群

今天我們來看一下利用宏定義編寫類似函數調用的方法和真實的函數有什么區別。

一、宏和函數怎么選?

首先來看一個例子:

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

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

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

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

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

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

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

    關注

    3

    文章

    4376

    瀏覽量

    64518
  • 代碼
    +關注

    關注

    30

    文章

    4892

    瀏覽量

    70428
  • 編譯器
    +關注

    關注

    1

    文章

    1658

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用 BSP 助手創建項目并創建 BSP 后,我應該在哪里更改 cy_device_headers.h 中列出的設備名稱

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

    明電子創業板IPO獲得受理

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

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

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

    LED戶外顯示屏應該什么樣的比較好呢?

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

    是德33220A 函數任意波形發生器

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

    景智駕總部落地衢州

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

    ADS1282沒有CS片,應該怎樣單獨給DAC傳輸數據呢?

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

    SUMIF函數與SUMIFS函數的區別

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

    SUMIF函數使用教程

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

    SV中define定義的用法

    SV中使用預處理指令`define來定義,可以用來創建文本替換。根據場景不同,`define主要用來定義常量、簡化復雜的表達式或代碼段以及提高代碼的可移植性。其基本語法為:
    的頭像 發表于 10-21 14:22 ?1758次閱讀

    如何由系統函數求頻率響應

    頻率響應函數表征了測試系統對給定頻率下的穩態輸出與輸入的關系,可以通過系統函數(或稱為傳遞函數)來求解。以下是由系統函數求頻率響應的步驟: 一、理解系統
    的頭像 發表于 10-18 09:32 ?3398次閱讀

    科技擬收購APCB 100%股權

    科技近期發布重要公告,宣布其計劃通過全資子公司新加坡勝及PSL,以不超過2.787億元人民幣的現金,全面收購APCB Electronics(Thailand)Co.,Ltd.(簡稱APCB)的100%股權。此次收購標志著勝
    的頭像 發表于 08-12 15:06 ?1035次閱讀

    面試???1:函數指針與指針函數、數組指針與指針數組

    在嵌入式開發領域,函數指針、指針函數、數組指針和指針數組是一些非常重要但又容易混淆的概念。理解它們的特性和應用場景,對于提升嵌入式程序的效率和質量至關重要。一、指針函數函數指針指針
    的頭像 發表于 08-10 08:11 ?1407次閱讀
    面試???1:<b class='flag-5'>函數</b>指針與指針<b class='flag-5'>函數</b>、數組指針與指針數組

    TC387中有__disable_interrupts()關閉所有中斷和打開所有中斷的函數嗎?

    TC387 芯片中有__disable_irq()和__enable_irq()關閉所有中斷和打開所有中斷的函數嗎,請告知
    發表于 08-01 08:22

    STM32的外部事件應該何如使用?

    知道外部事件是產生中斷標志,但是不產生中斷請求。但是在主函數應該怎么檢測這個中斷標志,或者說應該怎么配置。在cubemx中,將io口配置為事件模式之后。相對應的中斷線也不高亮了,想問一下大佬們,
    發表于 07-05 08:00
    主站蜘蛛池模板: 日韩成人在线影院 | 国产精品久久精品牛牛影视 | xx网成人| 在线成人免费观看国产精品 | 午夜一级毛片 | 黄网免费| 五月天情网| 夜夜做日日做夜夜爽 | 国产清纯白嫩大学生正在播放 | 欧美黑人5o厘米全进去 | 精品国产柚木在线观看 | 成人综合在线观看 | 亚洲三级在线 | 91久久精品青青草原伊人 | 欧美zoozzooz在线观看 | 一级特黄女毛毛片 | 亚洲第一区在线 | 97人人射 | 免费免费啪视频视频观看 | 五月婷婷久久综合 | 手机在线看片国产日韩生活片 | 天堂资源最新版在线官网 | 嫩草影院久久国产精品 | 日本亚洲精品色婷婷在线影院 | 天天操天天干天天摸 | 久久久精品免费视频 | 精品三级三级三级三级三级 | 综合爱爱| 99热最新在线观看 | 777国产精品永久免费观看 | 久久久网站亚洲第一 | 免费国产不卡午夜福在线观看 | 四虎在线最新地址4hu | 欧美天堂在线观看 | 色天使色婷婷丁香久久综合 | 天天干天天操天天 | 夜夜夜夜夜操 | 视频在线观看免费播放www | 亚洲激情都市 | www午夜| 国产高清一区二区三区四区 |