|
|
1
20
比特场,从C。
|
|
|
2
8
是的,这是 bitfields . 它们通常用于定义映射到硬件寄存器的结构。如果您决定使用它们,需要记住一些事情,一个是您不知道编译器是如何在组成字段的实际字节中进行布局、排序和填充的,它们在编译器之间可以而且将有所不同(可能使用同一个编译器,但优化设置不同S也是如此。 |
|
|
3
6
这是位域定义。 name是一个能够存储40位信息的整数。颜色可以存储24位。 这样做通常是为了在经常需要的结构中节省一些空间,或者将代码压缩到CPU易于处理的大小(在您的例子中是64位)。在64位计算机上的CPU寄存器中。 但是访问位字段的代码执行速度会稍微慢一些。 |
|
|
4
3
|
|
|
5
1
在这里
接下来的内容取决于编译器和操作系统,也可能取决于硬件。在带有gcc-7的macos上(带有
这告诉我们几件事:如果
有趣的是,我们可以“选择”比允许的更多的位。见
注意:clang++更详细地解释了这一点
然而,编译器似乎在幕后分配另一个
最后替换
|
|
|
tomm · 谷歌表格-将两列相乘,复制第三列 4 年前 |
|
|
ziemsterr · 无法在SQL SELECT语句中找出此语法错误 4 年前 |
|
|
Andrés BolÃvar · AJAX请求未收到我想要的属性 4 年前 |
|
|
clarkk · 当声明向量时,(1)是什么意思? 4 年前 |
|
|
Mike C. · Bash错误[:检查文件是否存在时缺少“]” 4 年前 |
|
|
michael · 错误的脚本和语法问题 4 年前 |