[C 的那些眉角]assert 是你的好朋友 — 但要用對地方

有一種 bug,你看了半天程式碼,
覺得「這裡不可能出問題」,
但它就是出問題了。

然後你加了一堆 printf
把每個變數的值都印出來,
才發現某個「不可能是 NULL」的指標,
在某個罕見的情況下真的是 NULL。

如果當初在那裡加了 assert
程式會在第一時間告訴你問題在哪,
而不是讓錯誤默默蔓延,
最後在完全不相關的地方 crash。

assert 就是做這件事的。

閱讀全文