其次,两个的语法也不一样,你可以写if( 1 ){}但是写个assert(1){}却不对,当然,这个区别是第一点造成的在语义上,if就不用解释了吧。assert的语义如下:在debug编译模式下,如果assert的表达式求值为false,就会中断程序;在release模式下,则没有任何操作。因此可以说,assert就是在调试模式下用来确保制定条件被满足...
二者并没有什么区别 不过实现方法不同, 一个是写代码 一个是宏 这就导致了修改上的不一样。如果想取消所有assert 那么 只要改一下宏就好了(debug->release)如果没用assert 而是用if return, 那就要一个个去改了,工作量会很大。
C语言__eallow()和__edis()、if和#if、ASSERT()的区别(基于DSP),程序员大本营,技术文章内容聚合第一站。