assert非常有用,不用它是你的损失,但是滥用它同样是你的灾难。
assert宏用来检查违反[模块/子系统(即,调用代码和被调用代码由同一个人或开发小组维护)内部各种
假设]的错误,这种错误是模块/子系统内部的编程问题引起的(即这些错误完全是程序员的代码编写错误
,是程序员的过错)。
上述就是我们应该利用assert宏检查的唯一错误类型,我们万万不可以用assert来检查运行时错误(如,
malloc成功与否、线程创建成功与否、窗体创建成功与否等等)。
PS:如果想要了解更详细的资料,可以看看《C++ Coding Standards》第68、69条。