Re: [問題] 請問BCB在有form的情況下

看板Programming作者時間18年前 (2007/04/06 15:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/5 (看更多)
※ 引述《wlsabcd.bbs@ptt.cc (我不會C++)》之銘言: > #define DBG 1?((void)(NULL)):__dbg_printf > 這一行是為了配合文法的正確,防止編譯錯誤發生。 > 試想DBG的用法,Ex: > GDB("this is debug string %c\n", 'A'); > 套入GDB的定義變成: > 1?((void)(NULL)):__dbg_printf("this is debug string %c\n", 'A'); > 以更明白的敘述: > if (1) > { > (void)(NULL); > } > else > { > __dbg_printf("this is debug string %c\n", 'A'); > } > 這在文法上是成立的。 > 若GDB的定義改為: > #define DBG ((void)(NULL)) > 以上例,則變成: > ((void)(NULL))("this is debug string %c\n", 'A'); /* 錯誤敘述 */ > implement空的Debug function方法有好幾種,這是其中一種。 它的寫法正確我知道,你講的也都對 但是我上一篇問的是 它既然也根據不同條件編譯,而有定義了一個不做事的 __dbg_printf 那何不直接呼叫 __dbg_printf 呢? (反正當 _DEBUG 沒定義時 程式中的 DBG(...) 就算直接去呼叫 __dbg_printf 也不會做事) 以上是我原本的問題 不過我後來想了一下,大概知道了 既然要真的達到不做事的目的 它寫法的用意應該是要把 function call 所產生的 overhead 都去掉 (既然 call 過去不做事,乾脆不要 call) 這樣子我就能理解了 也謝謝你的回答~ -- , 秘密情人 (bbs.cse.ttu.edu.tw) ~\ Post From: 220-132-114-113.HINET-IP.hinet.net
文章代碼(AID): #165V0k00 (Programming)
文章代碼(AID): #165V0k00 (Programming)