單片機(jī)C語言程序該這樣寫!不是教科書上教的那樣!
寫單片機(jī)程序也是程序,也要遵循寫軟件的一些基本原則,不是為了完成功能那么簡(jiǎn)單。我看過的所有的C語言單片機(jī)書籍基本都不注重模塊化思想,完全是拿著C當(dāng)匯編用,簡(jiǎn)直是在糟蹋C語言!
如下問題,幾乎所有的單片機(jī)書籍中都大量存在(更別說網(wǎng)上的和現(xiàn)實(shí)中的代碼了,書上都寫的那么差勁,學(xué)的人能好到哪里去):
1、變量到處定義,根本不管變量的生命周期是否合適(請(qǐng)回答:全局變量、局部變量、靜態(tài)變量、volatile變量有什么區(qū)別聯(lián)系?)
2、變量名稱極不規(guī)范,根本從名字上看不出來這個(gè)變量類型是什么,到底想干什么。
3、函數(shù)定義幾乎不用參數(shù),全都是void
4、語句寫的一點(diǎn)都不直觀,根本就是在用匯編。比如:想取一個(gè)字長(zhǎng)的高字節(jié)和低字節(jié),應(yīng)該定義一個(gè)宏或是函數(shù)來做,如#define HIBYTE(w) ((BYTE)((DWORD)(w) >> 8)),以后直接用HIBYTE()多直觀,難道非得用(BYTE)((DWORD)(w) >> 8)代表你的移位操作的水平很高嗎?
5、最重要的一點(diǎn),沒有建立模塊化的編程思想。一個(gè)程序往往要很多部分協(xié)同工作,需要把不同的功能分離出來單獨(dú)創(chuàng)建一個(gè).h和.c的文件,然后在頭文件中把可以訪問的函數(shù)暴露出來。
6、不思考曾經(jīng)做過的程序是否還有改進(jìn)的余地,寫程序如果只是為了寫而寫,一輩子也長(zhǎng)進(jìn)不了多少!
編輯:admin 最后修改時(shí)間:2018-05-19