在我正在编写的一些代码中,我遇到了对真假的奇怪重新定义。我以前见过这样的事情,以使检查更加严格/确定,但这在我看来有点奇怪,我想知道是否有人可以告诉我这样定义的充分理由,请参阅下面的我的评论他们旁边:
#define FALSE (1 != 1) // why not just define it as "false" or "0"?
#define TRUE (!FALSE) // why not just define it as "true" or "1"?
这个代码库中还有许多其他奇怪的地方。就像所有标准类型都有重新定义一样:
#define myUInt32 unsigned integer // why not just use uint32_t from stdint?
所有这些小“怪癖”让我觉得我错过了一些明显的东西,但我真的看不出重点:(
注意:严格来说,这是 c++ 代码,但它可能是从“c”项目中移植的。