[C 的那些眉角]#define vs const vs enum — 定義常數,哪種才對?

在嵌入式開發裡,定義常數這件事做了幾萬次,但我敢說大多數人都沒有認真想過「這三種到底有什麼差別」。 反正 #d … 閱讀全文

[C 的那些眉角]迴圈邊界從 0 還是 1 開始?

for 迴圈大概打過幾萬次了,但「從 0 開始還是從 1 開始」這件事,我到現在還是會停下來想一秒。 不是不會 … 閱讀全文

[C 的那些眉角]全域變數的誘惑 — 為什麼要克制使用

有一次接手一個前人留下來的 firmware 專案,開機卡在某個地方,重現條件很怪:只有在 UART 收到特定 … 閱讀全文

[C 的那些眉角]字串結尾的 \0 — 忘記它的代價

記得曾經有一次,改了一段看起來超簡單的字串處理邏輯。改完,編譯過了,燒進去跑——直接掛。 不是 crash 那 … 閱讀全文

[C 的那些眉角]指標與陣列的關係 — 從根本搞清楚

寫 C 寫了好幾年,我一直以為自己搞懂指標跟陣列的關係了。 直到有一次,我在一個跨檔案的專案裡,某個 .c 檔 … 閱讀全文