「編程」千萬注意,不要輕易把變量定義和賦值搞在一起

最近開發編寫一個測試設備的程序(C程序),在定義一個全局變量的時候,之前我喜歡在定義的時候直接賦值,如這樣:

unsigned char a=0;//這裡直接給變量a定義並賦值

void main_function()

{

//在這裡使用a

...

}

不過這樣做的時候卻有時可能要出問題,比如可能導致在後期使用的時候a可能不等於0。最近就被這個故障煩了好久,起初檢查好幾遍了都無頭緒,最後用串口把變量a傳出顯示才發現,a的數值變了,

a咋會變呢?你打si也想不到它會變心,

「編程」千萬注意,不要輕易把變量定義和賦值搞在一起

最後改為如下面的定義和賦值單獨進行,問題才得以解決,

unsigned char a;//定義a

void main_function()

{

a=0;//給a賦值

...

}

其實之前按照前一種方式做的也都沒有問題,不過最近又修改了不少代碼才出了故障。有時候看似省了一行代碼,其實導致了不可預見的不穩定的bug,還是應當按照規範來,畢竟,找出這個問題在哪裡實在太不容易了,要花很多時間和嘗試。

更多幹貨,盡在微信公眾號:yonkotech


分享到:


相關文章: