首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >8位1字节,这是一个有效的问题吗?

问8位1字节,这是一个有效的问题吗?
EN

Software Engineering用户
提问于 2013-09-05 10:01:34
回答 3查看 1.8K关注 0票数 3

我在我们学校过去的论文中看到了这些问题,我想知道这是否是一个有效的问题。

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邮政。

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2013-09-05 10:57:42

AFAIK,这里没有答案是正确的。bool和_Bool的大小不被限制为1字节(我似乎记得C中有一个约束,它强制sizeof(_Bool)<=sizeof(short)在C++中没有等效值)

票数 10
EN

Software Engineering用户

发布于 2013-09-05 10:11:42

我想说答案都是D),但问题确实有一点不尽如人意,第一个问题是AProgrammer指出,bool可能大于1字节.,第二个问题应该澄清最小的可寻址内存单位(位域允许多个较小内存单元的结构,但它们是不可寻址的)。

为了澄清为什么C)不是答案,C++中的字节中可能没有8位

希望这很明显,为什么A)和B)是不正确的

票数 4
EN

Software Engineering用户

发布于 2013-09-05 11:02:56

性病::向量中bool的大小为1位。

bool的向量--这是向量的一个专门版本,用于bool类型的元素,并对空间进行优化。它的行为类似于向量的非专门版本,但有以下更改:

  • 存储不一定是bool值的数组,但是库实现可以优化存储,以便将每个值存储在一个位中。
  • 元素不是使用分配器对象构造的,但它们的值直接设置在内部存储中的正确位上。
  • 成员函数翻转和成员交换的新签名。
  • 一个特殊的成员类型,参考文献,是一个类,它使用一个模拟bool引用的接口访问容器内部存储中的各个位。相反,成员类型const_reference是一个普通的bool。
  • 容器使用的指针和迭代器类型不一定既不是指针,也不一定是符合条件的迭代器,尽管它们应该模拟大多数预期的行为。

这些更改为这种专门化提供了一个奇怪的接口,并有利于内存优化而不是处理(这可能适合您的需要,也可能不适合您的需要)。在任何情况下,都不可能直接为bool实例化向量的非专用模板。避免使用不同类型(char、unsigned char)或容器(如德克)、使用包装器类型或对特定分配器类型进一步专门化的解决办法.

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/210540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档