这个bool 问题,明显还是刘工概念不清。
很简单, && 两边必须是逻辑表达式,逻辑分量,这个词并不确切(估计刘工又要 @#¥@%# 了, 呵呵)。pin.b_2×123 也好, 0xFF 也好,都是被归为逻辑表达式,虽然表达式中的 == 与 != 可以被省略, 看上去以为是 byte, int 类型, 估计这让刘工产生了错觉。除了 51 之类具有位处理器的 cpu 外,其他cpu compiler 的 bool 类型并非元数据类型,cpu 中并没有1位的存储形式,bool 是用byte(8bit cpu), 16/32bit int(16/32 cpu, 例如 80x86) 实现的。因此,在复杂的逻辑表达式中, 例如 pc 中,byte 形式的逻辑表达会以 32bit int 的 bool 作为中间存储过程(false : 0x00000000, true: 0xFFFFFFFF, vb 则恰好相反, 用 vc++做vb控件时很讨厌 )。同样, 即使 1位的 bit field 在这样的无位处理器 compiler 里, 也还是 byte, int 的处理形式。 |