#include"iostream.h"
class Myclass
{
double a;
int x,y;
char b;
};
void main()
{
cout<<sizeof(Myclass)<<endl;
}
我认为是8+4+4+1+3=20;但结果却是24;#include<iostream.h>
class Myclass
{
int a,b,c,d;
char k;
};
void main()
{
cout<<sizeof(Myclass)<<endl;
}
那为什么结果又是20?Help me!!
class Myclass
{
double a;
int x,y;
char b;
};
void main()
{
cout<<sizeof(Myclass)<<endl;
}
我认为是8+4+4+1+3=20;但结果却是24;#include<iostream.h>
class Myclass
{
int a,b,c,d;
char k;
};
void main()
{
cout<<sizeof(Myclass)<<endl;
}
那为什么结果又是20?Help me!!
而且我建议你不要太在意这些,因为各个编译器的执行结果都是不一样的!
class Myclass
{
double a;
int x,y;
char b;
};
#pragma pack()
这里最长变量类型是double所以以8为单位a=8<=8*1 =8
x+y=8<=8*1 =8
b=1<=8*1 =8
总计242
这里最长变量类型是int所以以4为单位
a+b+c+d=16<=4*4; =16 k=1<=4*1 =4
总计20