我无法对答案本身发表意见,所以:约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