C++类的大小计算问题

我在学校上C++课的时候,老师开始教的是类中所有变量的大小加起来就是类的大小。但是实际用“ sizeof ”测试就发现不对,看下面的例子。

class s {
public:
	char a;		//1字节
	int b;		//4字节
	float c;	//4字节
	double d;	//8字节
}

sizeof(s);  	//返回值为24

这四个变量加起来是17个字节,但是由于内存对齐的原因,会调整实际的内存占用,调整完之后a会占用4个字节,float会占用8个字节,但是他们俩实际使用的只有1个和4个字节。具体的内存对齐原理可以百度。

网上也有关于这个问题的解答:
知乎如何计算结构体大小?
简书什么是内存对齐?

发布了17 篇原创文章 · 获赞 2 · 访问量 1584

猜你喜欢

转载自blog.csdn.net/lubxx/article/details/104954312
今日推荐