只需一步,快速開始
熱門: 51單片機(jī) | 24小時必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
#ifdef 標(biāo)識符
程序段1
#else
程序段2
#endif
書上說命令的功能是:如果指定的標(biāo)識符已被定義,則程序段1參加編譯并產(chǎn)生有效代碼,否則程序段子參加編譯。
舉例:
#define CPU 8051
#ifdef CPU
#define FREQ 6
#define FREQ 12
書上說這后面的源程序不作任何修改就可以適用于兩種時鐘頻率的單片機(jī)系統(tǒng)。
我的問題是為什么只定義了一個#define CPU 8051,就可以適用二兩種時鐘頻率,即CPU被定義了,那么它不執(zhí)行了#define FREQ 6這段代碼,而未執(zhí)行#define FREQ 12代碼嗎?小弟還是搞不懂,望各位前輩指點(diǎn)指點(diǎn)
使用道具 舉報
一個系統(tǒng)有兩種工作頻率時,而你又還沒確定系統(tǒng)要哪種時鐘工作時,這時這種定義就非常有用了,當(dāng)系統(tǒng)定義那種時鐘時你就定義一下告訴編譯器那些程序要編譯,那些不要編譯,只有被編譯的程序才被寫到ROM里去,這提高了程序的通用性和減小程序代碼!
本版積分規(guī)則 發(fā)表回復(fù) 回帖后跳轉(zhuǎn)到最后一頁
小黑屋|51黑電子論壇 | 管理員QQ:125739409;技術(shù)交流QQ群281945664
Powered by 單片機(jī)教程網(wǎng)