C++问题 关于字节问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 07:10:31
struct E
{
char d;
char c;
int a;
};

struct F
{
char c;
int a;
char d;
};
sizeof(struct E) 和 sizeof(struct F) 各是多少?
用VC编译怎么是8和12?谁能解释下。

1字节=8位
在c++里面是32位编译器.4字节为一段
char; //1
char; //1
int; //4
下面我用一个0代表一个字节 ,‖是分的段,为了看清楚一点
0 0 0 0‖0 0 0 0
↑ ↑ ‖ ↑
2个char‖ int(4个字节)
所以是8字节
因为int要4个字节,而第一个32位放不下int了,所以就到下一个32位.
也就是说int 不能让一个数据类型(除struct)在不同的32位里面
0 0 0 0‖0 0 0 0 ‖0 0 0 0
↑ ‖ ↑ ‖↑
char ‖int ‖char
所以是12个字节,