gpt4 book ai didi

c++ - 为什么下面程序的输出是 12 字节,而总大小只有 6 位?

转载 作者:行者123 更新时间:2023-11-30 01:08:42 28 4
gpt4 key购买 nike

变量 v 的大小为 12 个字节,但由于它的大小为 6 位,为什么它不是 4 个字节?

#include <iostream>
using namespace std;

struct abc {
int c : 4;
char x : 1;
int y : 1;
} v;

int main()
{
cout << sizeof v; // it prints 12 . why?
}

最佳答案

问题是您混合了位域的类型。这可能会导致编译器添加填充以确保数据对齐。如果您一直使用 int,则成员之间不需要填充。

请注意,这很大程度上取决于您使用的编译器。如果我在我的家庭 Linux 系统上使用 GCC 6.2.0 尝试它,那么无论类型如何,我都会得到 4 个字节的大小。

关于c++ - 为什么下面程序的输出是 12 字节,而总大小只有 6 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41648623/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com