如上所述,bool是8位长.那么可以在bool变量中发送值2 .即
0000 0010 - > 2
(十进制表示)
例如: bool x;
如何在上面的bool变量'x'中发送'2'?
谢谢
不是用C++,不是.A bool可以持有true或false.有没有办法来存储2在bool没有先调用未定义的行为.一旦调用了未定义的行为,就会发生任何事情.(包括你所期待的,除了 当demo'ing重要客户).
此外,a bool不一定是8位长.它必须至少与char一样大(因为sizeof(bool)必须至少为1),并且unsigned char可以容纳的值范围的限制意味着它必须至少为8位.OTOH,没有什么可以阻止使用bool大于的实现char,并且实际上有char32或64位的实现(主要是DSP芯片).
bool是8位长
并非一定如此.所有标准都说它必须能够持有true和false:它sizeof是实现定义的.可以推断,它必须是至少 1,因为类型的sizeof必须是整数类型,它不能是零其他指针算法的阵列bools就破.
因此,不要尝试发送值2 - 您必须将程序的行为定义为未定义.