這招還滿方便的, 尤其是在 須要修改的code 彼此有所關連
比如說 在 A site 要有某些function 或data
但在 B site 不需要 (通常是跨平台). 程式碼 橫跨數個function 但 若用 comment mark 到時後compile 完 下次要切換成 另一版本得要一個一個uncomment 很麻煩. 所以常會定 個名稱,比如說
- 代碼: 選擇全部
#ifdef __name__
// do something
#endif
然後compile時改變參數即可.
這個問題也曾在java 上吵了一段時間.
後來據說 官方的建議是 用
- 代碼: 選擇全部
if (doItorNot()==true) {
doSomthing();
}
然後由外部(e.g.,從某個設定檔讀入)判斷 該條件是否成立.
Drake 寫:以前看一些 codes 時,總會在很多地方看到
- 代碼: 選擇全部
#if 0
blah blah...
blah blah...
blah blah again.....
#endif
等到自己開始在 Linux 下寫程式時
才發現自己也用起來了 #if 0 ... #endif
一來,不是每個人都有很方便且習慣的 editor 可以幫你作
block comment/uncomment
二來,如果使用 c 的 /* */
那只要被包住的 code 中間也有 /* */ 就會爛掉了
真是種有趣的經驗
ps. 現在在努力和 vlc 的 source code 奮戰中