單片機為什么還在用C語言編程?語言編寫程序有何缺陷
單片機內(nèi)存小,譬如一些用于小家電的8位單片機,內(nèi)存是以K算的,下面小編為大家介紹單片機為什么還在用C語言編程?語言編寫程序有何缺陷?
單片機為什么還在用C語言編程
C語言是最適合單片機編程的高級語言。
對單片機編程來說,首先要考慮的是單片機的程序空間和數(shù)據(jù)空間都是有限的,所以要讓程序盡量短小精悍,以節(jié)省程序占用的存儲空間。
第二、單片機編程的一個主要對象是對單片機的端口和內(nèi)部寄存器的操作和配置,這個需要比較精確的時序控制。
第三、單片機算法運算中,盡量使用加法、減法、移位運算,因為乘法和除法運算會非常費時間,尤其是除法,會耗費很多時間,這對于速度本身就有限制的單片機來說,是一個很大的負(fù)擔(dān)。
高級語言編寫單片機程序的缺陷
高級語言可以實現(xiàn)更為優(yōu)化的算法,更為方便的執(zhí)行方案,但是,高級語言對程序存儲空間的占用要比匯編和C語言多很多。這是最致命的一點,單片機有限的存儲空間需要靠精打細(xì)算來設(shè)計程序,根本經(jīng)不起高級語言臃腫的代碼體積。
高級語言無法實現(xiàn)精確的時序控制。
C語言是一個折中選擇
其實用C語言開發(fā)單片機也是一個折中方案,因為最適合單片機開發(fā)的編程語言實在太過晦澀難懂,并且每一種單片機的匯編指令有很大區(qū)別,所以想把一個程序從這種單片機移植到另一種單片機簡直是癡心妄想,還不如重新寫一遍程序。
而C語言代碼執(zhí)行效率高,也比較精簡,更便于移植......所以在現(xiàn)今的單片機編程語言中,C語言才會占據(jù)絕對主導(dǎo)地位