|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
C51模塊調(diào)試出現(xiàn)問題?? |
| 作者:cypjgbz 欄目:單片機 |
文件.C void main(void) {調(diào)用子程序} 文件.H #ifndef __SOUNDPLAY_H_REVISION_FIRST__ #define __SOUNDPLAY_H_REVISION_FIRST__ 子程序 #endif 在軟件調(diào)試中,就是當前執(zhí)行標記就是進不去H文件,但在執(zhí)行。。 (程序是好的) |
| 2樓: | >>參與討論 |
| 作者: computer00 于 2007/3/16 12:17:00 發(fā)布:
執(zhí)行到H文件中???? |
|
| 3樓: | >>參與討論 |
| 作者: cypjgbz 于 2007/3/16 15:33:00 發(fā)布:
對,單步調(diào)試就是進不去 |
|
| 4樓: | >>參與討論 |
| 作者: pigjiang 于 2007/3/16 15:58:00 發(fā)布:
H文件里就一個Define啊,進去干嘛? |
|
| 5樓: | >>參與討論 |
| 作者: computer00 于 2007/3/16 16:22:00 發(fā)布:
define是宏定義,在C里面展開的,所以還在C那里, 是不會跳到.h里面的,只是一個宏展開后可能有很多語句。 |
|
| 6樓: | >>參與討論 |
| 作者: cypjgbz 于 2007/3/17 8:54:00 發(fā)布:
看來你們沒有理解我的意思 但.H文件里還有程序在阿。 假如void Play(void)放在.H文件里, 但在主程序里有: void main(void) { while(1) { void Play(void) } } 單步執(zhí)行的話,怎么看void Play(void)是否正確阿?? |
|
| 7樓: | >>參與討論 |
| 作者: cypjgbz 于 2007/3/17 8:55:00 發(fā)布:
就比如該程序,單步調(diào)試怎么去調(diào)試阿?? |
|
| 8樓: | >>參與討論 |
| 作者: 平常人 于 2007/3/17 9:25:00 發(fā)布:
C語言的編譯器始終是把目標代碼與C文件相關(guān)聯(lián)的,與H文件無關(guān) H文件只在編譯過程的預處理階段用到;在預處理階段,所有的H文件中的內(nèi)容被原封不動地拷貝到C文件中出現(xiàn)#include的地方,并暫存在一個臨時文件中,所有C文件中的語句行號也被記錄在了臨時文件中(C文件中的第n行因為H文件的緣故,在臨時文件中被移動了),編譯階段處理的是臨時文件中的內(nèi)容,C語句的行號也在編譯結(jié)束后記錄在了可調(diào)試的目標代碼中,用以標示目標代碼與原C文件中語句關(guān)系。 從以上過程可看出,H文件中的所有語句在C文件中只有一個相同的行號,即通過目標代碼的索引找到C文件時,C文件中沒有相應(yīng)的語句,因此造成源程序級別的調(diào)試不能進行。 有些編譯調(diào)試環(huán)境,解決了這種問題,但多數(shù)IDE沒有處理這類情況,因為很少有人把代碼寫到H文件中。 |
|
| 9樓: | >>參與討論 |
| 作者: cypjgbz 于 2007/3/17 10:59:00 發(fā)布:
XIEXIE |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號 |