
Assert(SomeVitalFunction(foo) == OK)
DEBUG宏#defined一直都很好用:
#ifdef DEBUG #define Assert(x) if((x) == 0){/*some error handling*/}#else #define Assert(x)#endif 但是当我们#undef’d DEBUG时,它具有从代码中删除重要函数调用的效果.
我不能为我的生活弄清楚如何使用DEBUG#undef’d,并且通常在这样的断言中放置任何类型的函数调用似乎是个坏主意.
我错过了什么吗?
* =编辑以澄清以下Carpetsmoker的评论:代码来自一个特别落后的Elbonian代码奴隶的阴谋,我们的任务是破解,削减,刮胡子,擦亮,消毒和涂抹口红.
解决方法 你没有错过什么.始终应该写入断言,好像它们可以在编译器开关的轻d中消失.
您可以调用在断言内完成相对较长时间的函数(例如,分析数据结构的完整性),因为函数调用不会出现在发布版本中.另一方面,您无法调用正确 *** 作所需的功能.
总结以上是内存溢出为你收集整理的assert里面的函数调用==坏?全部内容,希望文章能够帮你解决assert里面的函数调用==坏?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)