迴圈邊界從 0 還是 1 開始?踩過幾次坑之後我的判斷邏輯
寫韌體寫了快二十年,for 迴圈大概打過幾萬次了,但「從 0 開始還是從 1 開始」這件事,我到現在還是會停下來想一秒。
不是不會寫,是因為這個東西錯起來特別陰。編譯不會報錯、跑起來大部分時候也正常,偏偏就在某個 buffer 邊界、某個陣列尾巴,悄悄多讀一個 byte 或少寫一格,然後在三天後的某個壓力測試裡爆給你看。
這篇就聊聊我自己的判斷邏輯,以及那些讓我學乖的坑。
韌體開發 x 踩坑心得 x 讓錢慢慢長大
寫韌體寫了快二十年,for 迴圈大概打過幾萬次了,但「從 0 開始還是從 1 開始」這件事,我到現在還是會停下來想一秒。
不是不會寫,是因為這個東西錯起來特別陰。編譯不會報錯、跑起來大部分時候也正常,偏偏就在某個 buffer 邊界、某個陣列尾巴,悄悄多讀一個 byte 或少寫一格,然後在三天後的某個壓力測試裡爆給你看。
這篇就聊聊我自己的判斷邏輯,以及那些讓我學乖的坑。