Re: 請教一project內,不同檔案資料變數宣告使用的問題
|
||||
---|---|---|---|---|
資深會員
|
版大您好:
緊急請教一個問題,例如 A 程式要讀取 B 程式中的陣列元素時,要怎麼處理,因為陣列是宣告在 B 程式中,我現在已經知道類似問題於變數時要加 extern 來解決,但是陣列要怎處理則沒有遇過,謝謝。 補充一下,是前面加 const 宣告放在 ROM 裡面的陣列,例如:
const unsigned char INI_DATA[4] = {0x0c,0x06,0x02,0x01};
發表於: 2008/7/15 16:32
|
|||
|
Re: 請教一project內,不同檔案資料變數宣告使用的問題
|
||||
---|---|---|---|---|
版主
|
你已經得到答案了自己也說明了問題所在,因為變數不可以重複宣告,所以就不能夠將所有的變數宣告在一個H檔然夠給大家用。只有常數的定義及函數的原型宣告可以這樣做。
發表於: 2008/7/14 15:46
|
|||
|
Re: 請教一project內,不同檔案資料變數宣告使用的問題
|
||||
---|---|---|---|---|
資深會員
|
版大及版上各位先進您好:
由於我一直希望能參透多支程式一起組譯的方法,所以我用了三支程式來試,分別叫做 MAIN.C、OPER_DISP.C 及 INTR.C 其中 INTR.C 只有放 Hi-Tech 的中斷函數,如下所示:
void interrupt ISR(void){ //中斷函數
具體作法如下: 1. 在 MPLAB 裡面的 Sources Files 將上面三個 程式加入進來 2. 每支程式有用到的變數或旗號都要在程式開頭宣告,或是另外製造一個 *.H 檔來放宣告,並在變數前面加上 extern ,例如:
extern bit DLY_C; //延遲一段時間旗號
結果及疑問: 這樣可以組譯,並且中斷函數也會跳進去執行,只是每支程式的開頭都要做變數宣告,不知道有沒有辦法將之集中於一支 *.H 檔中來統一宣告,我曾嘗試統一宣告,但是組譯時編譯器會說重複宣告而無法通過,請問這個問題有沒有辦法解決,謝謝。
發表於: 2008/7/14 15:19
|
|||
|
Re: 請教一project內,不同檔案資料變數宣告使用的問題
|
||||
---|---|---|---|---|
版主
|
剛試了一下,將你所勾選的" 需要回復"選項改成"無"後就可以看到了。
Attach file: (0.00 KB)
發表於: 2008/7/9 10:48
|
|||
|
Re: 請教一project內,不同檔案資料變數宣告使用的問題
|
||||
---|---|---|---|---|
管理員
|
參照:
站長也是現在才知道有這個功能 檢查了一下,該功能應該是文章發表者自己選定「查看要求」中的「需要回覆」選項所致。
發表於: 2008/7/9 9:34
|
|||
|
Re: 請教一project內,不同檔案資料變數宣告使用的問題
|
||||
---|---|---|---|---|
資深會員
|
哇!!!!!!!
還有要登入回覆才看的到內容的功能 看來這裡也開始不允許有壁虎的存在 ㄏㄏㄏ~~
發表於: 2008/7/9 9:28
|
|||
|
Re: 請教一project內,不同檔案資料變數宣告使用的問題
|
||||
---|---|---|---|---|
版主
|
只要是 ANSI C 都要遵照此語法的規定,所以Hi-Tech PICC 也是ㄧ樣的。
發表於: 2008/7/8 12:19
|
|||
|
Re: 請教一project內,不同檔案資料變數宣告使用的問題
|
||||
---|---|---|---|---|
資深會員
|
參照:
原來重點在這裡,我以為只要集中宣告並賦予 extern 屬性即可讓不同支的程式用到,多謝版大提醒。 但不知道 Hi-Tech C 和 C18 的特性在這方面是否相同,我會製造兩支簡單程式來驗證看看,謝謝。
發表於: 2008/7/8 11:49
Edited by Ryang on 2008年07月09日 10:42:14
|
|||
|
Re: 請教一project內,不同檔案資料變數宣告使用的問題
|
||||
---|---|---|---|---|
版主
|
可見的你一定沒有詳細去看 W401 C18 第七張的教材。
我是說程式 A 裡假設宣告了一個變數 unsigned char ABC ,這時要在程式 B 裡使用這個 ABC 變數的話就要在程式 B 裡再做一次的宣告 extern unsigned char ABC。 ㄧ般我只會將 #define 及 Function prototype 宣告在一個共用的 H 檔裡,變數還是要獨立使用的。
發表於: 2008/7/8 9:33
|
|||
|