![]() |
發布時間: 2022-11-1 09:54
正文摘要:請問我的keil c51單片機定義一個無符號變量unsigned char i=999.251; 編譯器沒有警告,如何才能調出來呢。謝謝。。。。。。。。如圖 |
會自動轉換成你定義數據寬度的整型 |
編譯器會優化掉,printf看看優化后的數 |
克拉瑪依 發表于 2022-11-2 09:54 unsigned char 255 |
KEIL會按自己的規則來轉換,可能不會提醒你。 |
用float i=9659.32521試試 |
理論上最大應該是65535吧,因為是二進制。所以不會報錯。 |
不會報錯,期間只會強制轉換。但運行起來和你預期對不對就不知道了![]() |
不同類型的變量進行賦值時會進行一次強轉,所以這里不會報錯 |
噢,>256的部是不是被棄了。 |
c語言的魅力就是這樣,隨便你瞎寫。自由度非常高,當然,后果自負。 |