我想断言unsigned int是严格正的.我在以下两个选项之间进行辩论:
unsigned int i = 1; assert(i > 0); /*option 1*/ assert(i != 0); /*option 2*/
我发现自己陷入了布里丹的窘境困境.有什么理由比较喜欢一个吗?
assert(i > 0);
对于i
检查正整数并包括大小写的其他程序员来说,它更具可读性i = 0
.
注意:正如Joachim在他的评论中指出的那样,请记住,如果宏NDEBUG
被定义
为最后一次包含的宏,那么宏assert()
不会产生任何代码,因此根本不做任何事情.