C 區域性變數引發的乙個BUG

2022-08-17 21:51:10 字數 474 閱讀 1001

**片斷如下:

unsigned char

status;

status = 0x01;//

local zone

printf(

"status = %d\n

", status);

析:如果定義乙個全域性變數a,在區域性區域又定義了一次a,那麼在區域性區域對a修改後,當退出該區域性區域後,

a的值還是未進入區域性區時的值。如下

bug描述:

status本用於判斷裝置執行狀態的,結果區域性區也定義了status,且把狀態值給了區域性區的status,

本來status是0x00表示成功的。但在退出區域性區後,status又恢復成了原本的0x01表示失敗。

這樣在上位機顯示出了裝置異常的提示。

記乙個全域性變數 冒充 區域性變數引起的bug

看 相當簡單直觀,覺得怎麼都不會出錯,可執行結果明明就是錯了 對著vim摸著腦袋就是想不出 有問題,可去掉新加的 就又可以了。沒辦法,只好祭出殺手鐗 一行一行注釋掉來觀察。反映問題的 段相當簡單 if condition then local v create object mpr if condi...

乙個bug引發的感想

上周五,系統出現乙個bug。基本描述如下 b功能上傳乙個到 b路徑 a功能要獲取b路徑的,但是獲取路徑寫錯了,寫成了a路徑。線上突然出現此問題,訂單無法完成。該功能用到的頻率還比較大。無法馬上布版本。首先的想法想通過改資料來解決,但是發現不行。資料是動態的,不能改,也改不過來。其次的想法 新增b路徑...

乙個 passive 引發的bug

不是什麼很難的東西,權且做個記錄。首先說下背景,目前的專案中,需要同時繫結 wheel 和 scroll 事件。繫結 wheel,目的是開發 ctrl wheel 縮放頁面功能,此功能與瀏覽器本身的衝突,因此需要禁用滾輪原生功能,示意 window.addeventlistener wheel fu...