[C 的那些眉角]#define vs const vs enum — 定義常數,哪種才對?
在嵌入式開發裡,定義常數這件事做了幾萬次,但我敢說大多數人都沒有認真想過「這三種到底有什麼差別」。 反正 #d … 閱讀全文
韌體開發 x 踩坑心得 x 讓錢慢慢長大
在嵌入式開發裡,定義常數這件事做了幾萬次,但我敢說大多數人都沒有認真想過「這三種到底有什麼差別」。 反正 #d … 閱讀全文
有一次我在 review 同事的 code,看到一行: if (len – sizeof(header) &g … 閱讀全文
有一次 code review,同事寫了這樣一行: int result = MAX(sensor_read( … 閱讀全文
for 迴圈大概打過幾萬次了,但「從 0 開始還是從 1 開始」這件事,我到現在還是會停下來想一秒。 不是不會 … 閱讀全文
有一次接手一個前人留下來的 firmware 專案,開機卡在某個地方,重現條件很怪:只有在 UART 收到特定 … 閱讀全文
有一次在專案開發中,需要把收到的封包做 checksum 驗證。邏輯很單純,把 buffer 的每個 byte … 閱讀全文
記得曾經有一次,改了一段看起來超簡單的字串處理邏輯。改完,編譯過了,燒進去跑——直接掛。 不是 crash 那 … 閱讀全文
寫韌體寫久了,有些東西會變成肌肉記憶,手就是會自動打出來。指標宣告完順手 = NULL,這大概是每個 C 工程 … 閱讀全文
寫 C 寫了好幾年,一開始我對記憶體佈局的理解就是「區域變數在 stack、malloc 在 heap」這樣而 … 閱讀全文
寫 C 寫了好幾年,我一直以為自己搞懂指標跟陣列的關係了。 直到有一次,我在一個跨檔案的專案裡,某個 .c 檔 … 閱讀全文