您好,已更改完畢,還是講一下問題,看您是要使用同一個變數名稱和內容,則絕對不能使用static!
1. 您放在Header的是已經明確的定義(Definition),非單純宣告(Declaration)
2. 所以main.c和lcd.c,都引用同一變數時,將會產生重複定義錯誤
3. 將明確定義(Definition)搬至lcd.c,刪除static識別字
4. header保留Declaration,並增加extern識別字
5. main.c則可直接參考(Reference),引用同一個變數
另外可觀察,data占用的空間
修改前
Program Size: Code=7568 RO-data=336 RW-data=3308 ZI-data=1028
修改後Program Size: Code=7568 RO-data=336 RW-data=1680 ZI-data=1024
可看到RW-data已經共用,不只節省空間,也不會非共用同一個變數內容,但要注意重新assingment時,引用該變數的函數都會受影響
修改完畢下載
ssss.zip
以上