|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請(qǐng)教keil c51問題? |
| 作者:lovedfrien 欄目:單片機(jī) |
在C51里,怎樣避免重復(fù)定義 1。我在一個(gè)頭文件(define.h)里定義了一個(gè)變量,比如說usigned LONG a,當(dāng)我在一個(gè)以上的源文件(如(one.c和two.c)里包含這個(gè)頭文件時(shí)便會(huì)出現(xiàn)重復(fù)定義的錯(cuò)誤,請(qǐng)問如何避免這個(gè)錯(cuò)誤? 2。當(dāng)我將源文件(one.c)文件,改為頭文件(one.h)文件,并將其(one.c)包含進(jìn)某個(gè)源文件(two.c)時(shí),編譯能通過,但當(dāng)我調(diào)試時(shí)(此時(shí)two.c文件要調(diào)用one.h中的一個(gè)函數(shù)delay(),卻無法進(jìn)入函數(shù)體內(nèi)部,是怎么回事? |
| 2樓: | >>參與討論 |
| 作者: AIRWILL 于 2005/5/24 11:51:00 發(fā)布:
用條件的宏 #ifndef #define …… // 或者定義變量 #endif 具體請(qǐng)看 keil C 的 H 文件,都是例子 |
|
| 3樓: | >>參與討論 |
| 作者: lovedfrien 于 2005/5/25 11:48:00 發(fā)布:
謝謝,不過還是沒看懂,麻煩大俠說詳細(xì)點(diǎn)? |
|
| 4樓: | >>參與討論 |
| 作者: isoar 于 2005/5/25 12:38:00 發(fā)布:
覺得樓主不是很清楚頭文件和程序文件的區(qū)別,建議看看書 |
|
| 5樓: | >>參與討論 |
| 作者: computer00 于 2005/5/25 12:45:00 發(fā)布:
變量在.C文件中定義,只能有一處。然后到.H文件中申明就行了。 比如: //*.c file //........ unsigned CHAR i,j,k; unsigned CHAR a_sample(unsigned CHAR x) { //do something } //*.h file #ifndef __SAMPLE_H__ #define __SAMPLE_H__ //.............. extern unsigned CHAR i,j,k; unsigned CHAR a_sample(unsigned CHAR); #endif |
|
| 6樓: | >>參與討論 |
| 作者: 荒原野草 于 2005/5/25 13:31:00 發(fā)布:
如果你的手頭有uc/os的書,參考一下他的做法,非常棒的 |
|
| 7樓: | >>參與討論 |
| 作者: AIRWILL 于 2005/5/25 13:50:00 發(fā)布:
哇,這么多例子,好好研究研究吧 |
|
| 8樓: | >>參與討論 |
| 作者: ketp 于 2005/5/25 13:59:00 發(fā)布:
有興趣看看 這是我寫頭文件的方法,如果你的文件要保密,那就把static部分放fileName.c中,還有建議用一個(gè)頭文件把所有文件的頭文件包含進(jìn)去 ///////////fileName.h//////////////// #ifndef _FILENAME_H #define _FILENAME_H #ifdef _FILENAME_C #define _EXTERN_ #else #define _EXTERN_ extern //文件對(duì)外接口 #endif //變量定義 _EXTERN_ u8 VAR1; #ifdef _FILENAME_C static u8 VAR2;//文件內(nèi)部變量 #endif //函數(shù)聲明 _EXTERN_ void Function1(void); #ifdef _FILENAME_C static void Function2(void);//文件內(nèi)部函數(shù) #endif #undef _EXTERN_ #endif//end of #ifndef _FILENAME_H ///////////fileName.c//////////////// #define _FILENAME_C #include fileName.h |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |