#include
class stu
{
private:
int a;
double c;
char p;
};
struct tea
{
int a;
int b;
};
int main()
{
stu st;
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(double));
printf("%d\n", sizeof(char));
printf("%d\n",sizeof(st));
tea te;
printf("%d\n", sizeof(te));
}
代码如上,结果是:
4
8
4
24
8
64位机器下 visual studio 2013结果,
不太明白,为什么类会多出来8个字节。
这个类的大小计算要字节对齐,类中最长的为double型8个字节,前后两个int都不足8字节,编译器会加上填充字节,3个8字节加起来就是24字节了 而不是实际的16字节.
楼上说的对,所以好的程序员在编写代码时候最好把小字节的变量放在前面,这样可以节省内存。。