我在我们学校过去的论文中看到了这些问题,我想知道这是否是一个有效的问题。
bool在C和C++中有多大?( A) 1位B) 4位C) 8位D) 1字节最小内存单元C或C++使用什么?( A) 1位B) 4位C) 8位D) 1字节
两者的答案都是D,但我在想,如果这是不合适的。
编辑:在某些系统中,1字节不一定是8位。看这个StackOverflow邮政。
发布于 2013-09-05 10:57:42
AFAIK,这里没有答案是正确的。bool和_Bool的大小不被限制为1字节(我似乎记得C中有一个约束,它强制sizeof(_Bool)<=sizeof(short)在C++中没有等效值)
发布于 2013-09-05 10:11:42
我想说答案都是D),但问题确实有一点不尽如人意,第一个问题是AProgrammer指出,bool可能大于1字节.,第二个问题应该澄清最小的可寻址内存单位(位域允许多个较小内存单元的结构,但它们是不可寻址的)。
为了澄清为什么C)不是答案,C++中的字节中可能没有8位
希望这很明显,为什么A)和B)是不正确的
发布于 2013-09-05 11:02:56
性病::向量中bool的大小为1位。
bool的向量--这是向量的一个专门版本,用于
bool类型的元素,并对空间进行优化。它的行为类似于向量的非专门版本,但有以下更改:
bool值的数组,但是库实现可以优化存储,以便将每个值存储在一个位中。bool引用的接口访问容器内部存储中的各个位。相反,成员类型const_reference是一个普通的bool。这些更改为这种专门化提供了一个奇怪的接口,并有利于内存优化而不是处理(这可能适合您的需要,也可能不适合您的需要)。在任何情况下,都不可能直接为bool实例化向量的非专用模板。避免使用不同类型(char、unsigned char)或容器(如德克)、使用包装器类型或对特定分配器类型进一步专门化的解决办法.
https://softwareengineering.stackexchange.com/questions/210540
复制相似问题