這個問題真不是幾句話能說清楚的。
主要應做到以下幾點:
少用庫函數,少用float,int 型變數,少用case語句,盡量寫成for循環結構,程序採用模塊化設計,優化程序,簡化程序,養成良好的編程習慣。後四項其實很難做到。keil中C51標簽下的程序代碼優化級選項,選9級。
② 用keil軟體編程內存不夠怎麼辦
如果內存不夠,可以自行添加物理內存,增加電腦的實際可用內存即可。
③ keil5 在win10 環境下編譯很慢怎麼回事
1、內存佔用大,平時也可以清理加速下內存,打開騰訊電腦管家電腦加速開啟小火箭
2、騰訊電腦管家——工具箱——上網慢(或游戲加速)
3、物理內存佔用大,不需要的卸載了,打開騰訊電腦管家工具箱軟體卸載
4、資源佔用,建議合理分配,打開騰訊電腦管家工具箱網速保護
④ 51單片機keil的編程問題
unsigned char 和 unsigned int 的區別就是位數不同嗎,前者是8位二進制數,最大值是255,佔用一個位元組內存。而後者是16位數,最大數是65535,佔用兩個位元組內存。當數據大於255,就必須用int型。而數據小於256時,就盡量用char型,不要用int型,以節省單片機內存。因單片機內存很有限,要節省內存的使用,最單片機編程的基本要求。
⑤ 請教關於KEIL如何正確設置編譯超過64K的程序
Project -> Options for Target -> C/C++下面勾選逗Optimize for Time地優化時間,即優化代碼中費時的地方。
Keil(MDK-ARM)系列教程(四)_工程目標選項配置(Ⅱ):
Keil系列教程:
⑥ keil編譯的data空間消耗
因為你的FUN1,FUN2都沒有被調用過,所以編譯器沒辦法,只好把函數中的局部變數都保留下來,反而佔了空間。
你把程序的MAIN改成如下:
main()
{
char i; //你不會一個變數都不用吧
i = 0;
if(i)
{
fun1();
fun2();
}
}
再編譯試試就知道了,呵呵,當然,還要在main之前增加fun1和fun2的函數原型
⑦ keil編譯單片機的c語言程序,程序中的大量空行,會不會佔用rom,刪掉空行能使程序佔用內存減小嗎
空行並不會佔用內存,KEIL只會編譯正確的語句,即使是語句後面的注釋也會被編譯器忽略掉,所以不用擔心
⑧ keil編譯時空間不足
我用keil2,keil4編譯都沒有問題的。
重新建一個工程,再試下。
下圖就是用keil4編譯的結果。估計是沒有破解。或者破解的不對。
⑨ keil編譯C語言內存不足 怎麼解決 求助各位老師
這種問題就是重復定義,你把重復定義的在SOURCE
INSIGHT
中搜
一下,你會發現至少兩次有重復定義到同一個東西,你把其它的刪除,只保留一個就好
⑩ KEIL中編譯一直提示沒有節適配選擇器是怎麼回事
這個警告應該是有某個函數從沒有被調用,建議你看看具體的警告信息(信息中有函數名的),把那個函數注釋掉,這樣能節約內存和程序空間。
另外,再編譯一次這個警告會消失,其實是KEIL優化配置的效果,配置不同,效果也不一樣。