[問題] 關於變數的運算

作者: kao028kimo (Louis Kao)   2013-08-25 10:20:56
各位好:
我撰寫的程式是給keil C作編譯的
裡面有負責需要做四則運算的部分
內容大概如下:
unsigned char min=5,min1=1;
unsigned char cal1,cal2,cal3,cal4;
cal1=min+min1;
cal2=min*min1;
cal3=min-min1;
cal4=min/min1;
其中,cal1=6 cal2=5 計算結果正常
cal3=0xFFFC 非0x04 很奇怪 請問各位有誰知道原因嗎?
我該如何處理 將計算結果恢復正常呢?
作者: kikiqqp (喵食罐頭)   2013-08-25 11:01:00
正常來說,你的計算會在編譯時被最佳化掉,給他volatile吧
作者: WolfLord (呆呆小狼￾ ￾ N￾ ￾ )   2013-08-25 13:18:00
你碰到騙人布了,char哪來0xfffc
作者: ksmrt0123 (ksmrt)   2013-08-30 01:08:00
用keil的debug模式trace一下很快就可看出問題在那了我的意思是用keil的debug mode模擬跑一下就知道了不需要8051硬體, 還可配合ASM code一起看

Links booklink

Contact Us: admin [ a t ] ucptt.com