我知道boolean
列类型,但SQLite中有boolean
文字吗?在其他语言中,这可能是true
或false
.显然,我可以使用0
和1
,但我倾向于尽可能避免所谓的"魔术数字".
从这个列表中,它似乎可能存在于其他SQL实现中,但不存在于SQLite中.(我正在使用SQLite 3.6.10,它的价值.)
在我正在研究的一些代码中,我遇到了对真相和虚假的奇怪的重新定义.我之前已经看过这样的事情,以便更加严格/确定地进行检查,但是这一点在我的脑海里有点奇怪,我想知道是否有人可以告诉我这些定义的原因是什么,请参阅下面我的评论旁边:
#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"?
Run Code Online (Sandbox Code Playgroud)
这个代码库还有许多其他奇怪的怪异.就像所有标准类型的重新定义一样:
#define myUInt32 unsigned integer // why not just use uint32_t from stdint?
Run Code Online (Sandbox Code Playgroud)
所有这些小"怪癖"让我觉得我错过了一些明显的东西,但我真的看不出这一点:(
注意:严格来说这是c ++代码,但它可以从'c'项目移植.
例如,当我7>1
用C语言写入时(如果这不是一直是特征,则说是C99),我可以期望结果恰好是1还是只有一些非零值?这适用于所有bool运营商吗?