为什么winapi的BOOLEAN使用1表示真,2表示假?

时间:2011-10-02 08:20:35

标签: winapi types boolean

我不知道。刚刚在我的调试窗口中看到它BOOLEAN STORAGE_DEVICE_DESCRIPTOR正在解析为2而不是1.我惊慌失措,认为2意味着错误。然后我意识到它的真实性。但为什么这种奇怪的设计呢?或者我在我身边做错了什么?从未听说过像multibyte boolean这样的东西。 (顺便说一下,我正在使用MinGW和Qt Creator IDE的调试器)

1 个答案:

答案 0 :(得分:0)

有历史原因可以解释为什么存在许多类型的布尔值({3}}。基本上任何非零值都是真的,零是假的。这意味着你不应该这样做比较:

if( x == TRUE )

但相反:

if( x )