PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
ASM
[問題] 陣列宣告問題
作者:
f751202
(hi~)
2013-07-09 11:10:48
小弟我用KEIL C 宣告陣列
char a[16] _at_ 0x39;
後面在空16個位置給他 程式寫到後面會發現
他自動編譯出來的陣列位置好像會亂跳 然後我只要重複利用到 程式就會當掉
後來改成
char a[16] _at_ 0x39;
char a[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
先給他數值 程式就不會錯亂
我想問的是如何宣告陣列的每個位置? 還是一個0x39就足夠?
因為我還是蠻怕他編譯後用到我目前還沒用到的位置
作者:
ruemann
(路人甲)
2013-07-09 12:27:00
你會當掉應該是其他原因,跟_at_和初始值都沒關係你宣告了16個BYTE的陣列,它就會留16BYTE空間給你
作者:
WolfLord
(呆呆小狼 N )
2013-07-09 16:33:00
我比較好奇為什麼要用 _at_
作者:
f751202
(hi~)
2013-07-09 17:54:00
因為我是看書的 不知道有什麼區別呢XD?
作者:
WolfLord
(呆呆小狼 N )
2013-07-09 20:53:00
_at_ 是直接指定記憶體,如果沒有特別需求這樣通常會撞爛Stack,而不一定要指定數值,直接宣告來用編譯器自然會安排安全可用的記憶體給你用了。重點不是先給數值,而是你用了 _at_
作者: ksmrt0123 (ksmrt)
2013-07-10 01:05:00
宣告0x39就會從0x39開始配起. 不過使用 _at_ 最好也要同時宣告記憶體類型, 如 char data a[16] _at_ 0x39;至於程式問題比較可能是如1F所說是其他原因
作者:
f751202
(hi~)
2013-07-10 09:50:00
之前沒給值之前 程式跑到某一段會重開 給了就好了後來把值 那段刪掉 又可以了 目前也還在找問題中不知道什麼情況 MCU會強迫重新執行呢?
繼續閱讀
Re: [問題] 有關於MCU去改某顆IC暫存器之值
kikiqqp
[問題] 有關於MCU去改某顆IC暫存器之值
Acekirisame
Re: [問題] PWM 控 MOSFET 限制電流
eloha123
[請益] 8051 microsecond級 delay 的問題
shaoweei
[問題] LCD 斷電後 系統失當
hogiking
Re: [問題] UART TX無法傳送資料
hogiking
[問題] UART TX無法傳送資料
hogiking
[問題] 請問有類似hyperterminal但可以顯示時間?
spitfires221
Re: [請益]隨機程式如果不使用8051
vic123456
Re: [請益]隨機程式如果不使用8051
vic123456
Links
booklink
Contact Us: admin [ a t ] ucptt.com