從我理解的斷言是C中的一個宏,據推測,如果你在編譯時使用它,但將其禁用,那麼不會有開銷(這可能是不正確的,我不知道)。 我的問題是,我想要做的就是讓所有的變量傳遞給我的函數,並打印出來的輸出,但只有當我想調試啓用。以下是我迄今爲止:有比在C中使用#ifdef更簡單的方法嗎?
int exampleFunction (int a, int b)
{
#ifdef debugmode
printf("a = %i, b = %i", a, b);
#endif
}
我不知道是否有做這樣的事情變得更容易(和更少的醜陋)方法。 xdebug for php具有此功能,我發現在調試時爲我節省了大量時間,所以我想爲每個功能都做到這一點。
感謝
斷言()宏被禁用完全是在NDEBUG被定義的情況下,所以如果在釋放模式下定義的話,將不會有開銷。 – 2009-06-17 19:17:56