C語(yǔ)言開發(fā)單片機(jī)為啥都是全局變量形式?
01
前言
02
做控制的工程師特點(diǎn)
float SetSpeed;float err;float err_last;float Kp,Ki,Kd;float integral;float result;float PID(float speed){err=SetSpeed-speed;=err;result=Kp*err+Ki*integral+Kd*(err-err_last);err_last=err;return result;}
03
做非嵌入式的軟件工程師特點(diǎn)
04
總結(jié)
-
如果只是文件內(nèi)調(diào)用,全局變量只能寫在這個(gè).c文件里,不要寫進(jìn).h文件。 -
如果有文件外調(diào)用,全局變量要寫在.h文件里。 -
.h里面的全局變量全局可讀,但是只有本文件組可以寫。別的文件要寫請(qǐng)調(diào)用set函數(shù)。 -
所有的全局變量無(wú)論在.h還是.c里面都要包成同名struct。哪怕只有一個(gè)變量也要寫進(jìn)struct里面。比如PID.c里面有一個(gè)pid_S,PID.h里面有個(gè)PID_S。這樣其他人不僅可以立即識(shí)別出一個(gè)變量是project內(nèi)global/文件內(nèi)static/函數(shù)內(nèi)local,同時(shí)還能輕松追溯到這個(gè)函數(shù)是屬于哪個(gè)文件的。 -
不要寫函數(shù)內(nèi)的static變量。函數(shù)內(nèi)的static變量在實(shí)際的項(xiàng)目中幾乎就是bug生成器,沒法簡(jiǎn)單的reset。而且對(duì)unit test非常不友好。
-END-
推薦閱讀
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!






