嵌入式開發(fā)培訓(xùn)之如何優(yōu)化代碼?
2022-01-18點(diǎn)擊量:4741
很多人會(huì)發(fā)現(xiàn),在做完項(xiàng)目,交了產(chǎn)品后,雖然代碼是自己寫的,但是維護(hù)起來卻好像是不是自己寫的一樣,而且錯(cuò)漏百出,讓人大跌眼鏡,這就是編程時(shí)沒有好好進(jìn)行代碼優(yōu)化的結(jié)果。進(jìn)行代碼的優(yōu)化首先要熟悉算法語(yǔ)言,比如將比較慢的順序查找法用較快的二分查找法或亂序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,這樣可以大大提高程序執(zhí)行的效率。而選擇合適的數(shù)據(jù)對(duì)代碼優(yōu)化來說也是非常有幫助的,比如說在隨機(jī)存放的數(shù)據(jù)中鏈表肯定沒有插入和刪除來得快。當(dāng)然數(shù)據(jù)類型也要盡量小,比如能用char就不要用int,能用整型變量定義的變量替代longint,那就替換掉。同時(shí),運(yùn)算強(qiáng)度也要減少,復(fù)雜的表達(dá)式雖然看著長(zhǎng)度上沒什么變化,但是表達(dá)上卻是不一樣的,就好像a=pow(a,2.0);可以改成a=a*a;。對(duì)于一些不需要循環(huán)變量參加運(yùn)算的任務(wù)可以把它們放到循環(huán)外面,這里的任務(wù)包括表達(dá)式、函數(shù)的調(diào)用、指針運(yùn)算、數(shù)組訪問等,應(yīng)該將沒有必要執(zhí)行多次的操作全部集合在一起,放到一個(gè)init的初始化程序中進(jìn)行。當(dāng)然,咱們還可以使用查表,在線匯編等方式去進(jìn)行代碼優(yōu)化,在嵌入式中并沒有唯一的解決方法,只有合適的解決辦法,至于哪個(gè)才是最合適的,那就要大家好好學(xué)習(xí),天天向上了。...