我無法對答案本身發表意見,所以:約Using comma to prevent the need for brace pair解釋斷言宏
#define MY_ASSERT(expr) ((expr) || (debugbreak(), 0))
這裏的DebugBreak()返回void,但我們仍然希望有0作爲右值。
(debugbreak(),0)如何工作返回0?我明白debugbreak()的返回值會被丟棄,並返回0,但debugbreak會生成一個異常,那麼以後如何評估任何東西?我想我的問題可以概括爲任何類似的二元運算符,其中第一部分被評估退出程序。
通過單擊旁邊的複選標記,請接受一些答案您以前的問題。如果你這樣做,這裏的人會更樂意幫助你下一次。 – 2011-02-28 06:41:04
對不起,我的瀏覽器主題通常會讓大多數元素不可見,所以除非我正在尋找它們,否則我傾向於不知道它們。謝謝你告訴我,我現在去找接受按鈕。順便說一下,沒有人對我收到的錯誤提出了這樣的問題,所以如果有人在意,請參閱我在問題中添加的最後一行以強調這一點http://stackoverflow.com/questions/5138609/why-does-main-需要拉條。 – user490735 2011-02-28 06:43:18
你爲什麼不改變你的主題,以實際的作品? – GManNickG 2011-02-28 07:19:21