久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2691|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

請(qǐng)教 關(guān)于C語(yǔ)言宏定義的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:47286 發(fā)表于 2020-1-11 14:46 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
比如 在keil中 我定義這樣一個(gè)宏
#define a  1+2


調(diào)用時(shí)
x=a;

問(wèn)題

運(yùn)算過(guò)程是 x=3 還是 x=1+2

我理解應(yīng)該是x=1+2 就是說(shuō)每次調(diào)用a都會(huì)進(jìn)行一次1+2的運(yùn)算

但這兩天看書(shū)說(shuō) define在編譯時(shí)就運(yùn)算完了 要是按書(shū)里的說(shuō)法理解 每次調(diào)用a 應(yīng)該直接就是3而不進(jìn)行1+2運(yùn)算

有點(diǎn)糊涂了 應(yīng)該是哪個(gè)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:685006 發(fā)表于 2020-1-11 15:11 | 只看該作者
編譯時(shí)就已經(jīng)運(yùn)算完了。
回復(fù)

使用道具 舉報(bào)

板凳
ID:685069 發(fā)表于 2020-1-11 17:16 | 只看該作者
我覺(jué)得是第二個(gè),宏定義本身是對(duì)程序中特殊命令的預(yù)處理,經(jīng)過(guò)預(yù)處理后程序就不再包括預(yù)處理命令了,最后再由編譯程序時(shí)——預(yù)處理——源程序進(jìn)行編譯處理,得到可供執(zhí)行的目標(biāo)代碼。所以是x直接是3,a還是1+2,但是在預(yù)處理中完成的。
回復(fù)

使用道具 舉報(bào)

地板
ID:685071 發(fā)表于 2020-1-11 17:27 | 只看該作者
宏定義就是把定義的宏在程序運(yùn)行時(shí)直接替換  在程序編譯的時(shí)候a被替換成1+2  所以就變成x=1+2
回復(fù)

使用道具 舉報(bào)

5#
ID:275826 發(fā)表于 2020-1-11 18:18 | 只看該作者
就是x=3
回復(fù)

使用道具 舉報(bào)

6#
ID:267932 發(fā)表于 2020-1-11 19:46 | 只看該作者
原樣替換  ,你理解應(yīng)該是對(duì)的
回復(fù)

使用道具 舉報(bào)

7#
ID:267932 發(fā)表于 2020-1-11 19:58 | 只看該作者
你可以自己 驗(yàn)證的 ,  #define a  1+4       然后  x = a/4;     打印看結(jié)果多少   就知道是先加等于5   還是原樣替換了。
回復(fù)

使用道具 舉報(bào)

8#
ID:473159 發(fā)表于 2020-1-11 19:58 | 只看該作者
你這是偷懶!這樣的疑問(wèn)完全是自己可以在C編程器中去驗(yàn)證的事!
回復(fù)

使用道具 舉報(bào)

9#
ID:47286 發(fā)表于 2020-1-11 21:29 | 只看該作者
zhai1995 發(fā)表于 2020-1-11 19:58
你可以自己 驗(yàn)證的 ,  #define a  1+4       然后  x = a/4;     打印看結(jié)果多少   就知道是先加等于5    ...

歐了 你這個(gè)方法好 我試試
回復(fù)

使用道具 舉報(bào)

10#
ID:47286 發(fā)表于 2020-1-11 22:09 | 只看該作者
感謝樓上各位前輩的回復(fù) 特別感謝7樓的回復(fù) 根據(jù)你的建議我驗(yàn)證了一下 情況如下

第一種

#define a 4+4

uchar x;

x=a/4;

結(jié)果 x=5

說(shuō)明是直接替換

第二種
#define a 4+4
uchar b=a;
uchar x=0;

x=b/4;
x=2;

說(shuō)明編譯時(shí)已經(jīng)運(yùn)算過(guò)了

我這么表達(dá)可能不太準(zhǔn)確 就是說(shuō)直接調(diào)用宏定義的東西 就是直接替換 寫(xiě)什么進(jìn)去就直接替換成什么 但如果把宏聲明給一個(gè)變量 在編譯時(shí)會(huì)直接把宏的值運(yùn)算出來(lái)給變量
回復(fù)

使用道具 舉報(bào)

11#
ID:685212 發(fā)表于 2020-1-12 01:23 | 只看該作者
我覺(jué)得應(yīng)該是x=1+2
回復(fù)

使用道具 舉報(bào)

12#
ID:462827 發(fā)表于 2020-1-12 11:31 | 只看該作者
宏定義在預(yù)編譯階段只是查找替換
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久久新郎 | 久久久久国产精品 | 国产精品成人一区 | 久久午夜精品福利一区二区 | av中文字幕在线观看 | 成在线人视频免费视频 | 免费在线观看av网站 | 欧美成年网站 | 国产999精品久久久影片官网 | 色婷婷激情综合 | 男女羞羞免费视频 | 国产精品成人在线播放 | 激情六月天 | 五月香婷婷 | 人人看人人爽 | 国产在线一级片 | 国产精品久久久久久久久久久久午夜片 | 成人毛片视频免费 | av在线免费播放 | 国产精品视频久久久久 | 黄色欧美视频 | 成人精品鲁一区一区二区 | 日韩精品 电影一区 亚洲 | 成人免费观看男女羞羞视频 | 成人三区 | 久久精品国产亚洲一区二区 | 久久亚洲国产精品 | 久久免费香蕉视频 | 殴美黄色录像 | 亚洲成在线观看 | 妞干网福利视频 | 久久精品影视 | 日韩精品在线观看视频 | 天堂视频中文在线 | 日韩免费在线视频 | 久久大陆| 国产精品久久久久婷婷二区次 | 久久久久国产 | 欧美日韩精品久久久免费观看 | 国产视频日韩 | 日本亚洲欧美 |