#ifdef 標識符
程序段1
#else
程序段2
#endif
書上說命令的功能是:如果指定的標識符已被定義,則程序段1參加編譯并產生有效代碼,否則程序段子參加編譯。
舉例:
#define CPU 8051
#ifdef CPU
#define FREQ 6
#else
#define FREQ 12
#endif
書上說這后面的源程序不作任何修改就可以適用于兩種時鐘頻率的單片機系統。
我的問題是為什么只定義了一個#define CPU 8051,就可以適用二兩種時鐘頻率,即CPU被定義了,那么它不執行了#define FREQ 6這段代碼,而未執行#define FREQ 12代碼嗎?小弟還是搞不懂,望各位前輩指點指點
一個系統有兩種工作頻率時,而你又還沒確定系統要哪種時鐘工作時,這時這種定義就非常有用了,當系統定義那種時鐘時你就定義一下告訴編譯器那些程序要編譯,那些不要編譯,只有被編譯的程序才被寫到ROM里去,這提高了程序的通用性和減小程序代碼!
| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |