找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 5004|回復(fù): 1
收起左側(cè)

[求助][原創(chuàng)]預(yù)處理命令問題

[復(fù)制鏈接]
ID:17963 發(fā)表于 2009-10-11 12:19 | 顯示全部樓層 |閱讀模式

#ifdef 標(biāo)識符

   程序段1

#else

   程序段2

#endif

      書上說命令的功能是:如果指定的標(biāo)識符已被定義,則程序段1參加編譯并產(chǎn)生有效代碼,否則程序段子參加編譯。

      舉例:

       #define CPU 8051

       #ifdef  CPU

       #define FREQ 6

       #else

       #define FREQ 12

       #endif

       書上說這后面的源程序不作任何修改就可以適用于兩種時鐘頻率的單片機系統(tǒng)。

       我的問題是為什么只定義了一個#define CPU 8051,就可以適用二兩種時鐘頻率,即CPU被定義了,那么它不執(zhí)行了#define FREQ 6這段代碼,而未執(zhí)行#define FREQ 12代碼嗎?小弟還是搞不懂,望各位前輩指點指點

回復(fù)

使用道具 舉報

ID:9542 發(fā)表于 2010-1-27 21:47 | 顯示全部樓層

一個系統(tǒng)有兩種工作頻率時,而你又還沒確定系統(tǒng)要哪種時鐘工作時,這時這種定義就非常有用了,當(dāng)系統(tǒng)定義那種時鐘時你就定義一下告訴編譯器那些程序要編譯,那些不要編譯,只有被編譯的程序才被寫到ROM里去,這提高了程序的通用性和減小程序代碼!

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表