在VC中是以结构体中最长类型所占字节对齐,而所有类型的对齐必须是自己的整数倍位置上对齐。
struct TestSize
{
int a;
double b;
char c;
short i;
int d;
{
int a;
double b;
char c;
short i;
int d;
};
这个结构体占用24个字节,其中a独占8字节,b占8字节,c占第三个8字节的第一个字节,i占3、4字节,d占5、6、7、8字节
----------------------------------------------------------------------------------
class TestSize
{
int a;
double b;
char c,e;
short i;
int d;
{
int a;
double b;
char c,e;
short i;
int d;
void add(){};
void reduce(){};
void compare(){};
};
void reduce(){};
void compare(){};
};
c成员函数不占类的空间,除非是虚函数,因为有虚函数的话类中要维护一个虚函数表的指针;
所有的函数都是放在代码区,不占用类对象的空间,由所有的类对象共享。