當(dāng)前位置:首頁 > 學(xué)習(xí)資源 > 講師博文 > 為什么你寫的嵌入式代碼經(jīng)常產(chǎn)生bug
程序員的工作內(nèi)容
什么是bug?
程序錯誤,即英文的Bug,也稱為缺陷、臭蟲,是指在軟件運行中因為程序本身有錯誤而造成的功能不正常、死機、數(shù)據(jù)丟失、非正常中斷等現(xiàn)象。 早期的計算機由于體積非常龐大,有些小蟲子可能會鉆入機器內(nèi)部,造成計算機工作失靈。史上的第一只 Bug ,真的是因為一只飛蛾意外走入一電腦而引致故障,因此Bug從原意為臭蟲引申為程序錯誤。
為什么你的代碼經(jīng)常產(chǎn)生bug?
1、代碼不規(guī)范
代碼不縮進(jìn),邏輯全憑自己對代碼的理解,代碼長了,看著看著就亂了
括號不認(rèn)真加,導(dǎo)致執(zhí)行和預(yù)期不一樣
介紹一個好用的代碼調(diào)整工具 nodepad++
修改前:
一鍵調(diào)整代碼格式:
Github 鏈接
https://github.com/ywx/NppAStyle/releases/tag/v0.2.9
2、不寫注釋
如果該代碼出了bug,修改bug的人完全需要重新梳理你當(dāng)時的想法,你曾經(jīng)的努力,都付諸東流了。
3、不會內(nèi)存管理
內(nèi)存訪問越界,尤其在使用數(shù)組的時候
申請的堆空間,一定要記得釋放
未初始化的變量,直接使用,野指針隨意使用
變量數(shù)據(jù)類型不匹配,數(shù)據(jù)類型轉(zhuǎn)換過程中,導(dǎo)致丟失數(shù)據(jù)
4、并發(fā)競爭整不明白
在多進(jìn)程多線程的操作中,需要清晰的考慮清楚進(jìn)程或者線程之間的關(guān)系,執(zhí)行順序,防止出現(xiàn)同步或者互斥不能完成
5、測試不全面
一個健壯的代碼,一定要進(jìn)行全面的測試,尤其是邊界值附近,一定要把所有可能性都測試下。
寫代碼并不難,不過對待代碼要細(xì)心、耐心,細(xì)節(jié)決定成敗。