每次面试C++都会遇到各种蛋疼的问题。决定从今天开始进行总结,避免继续蛋疼。
struct s
{
int a;
short b;
char c;
};
sizeof(s)=8
struct s
{
char c;
int a;
short b;
};
sizeof(s)=12
struct s
{
int a;
short b;
char c;
char d;
};
sizeof(s)=8
结论:padding 是从上往下进行的。
class s
{
int a;
short b;
char c;
void foo();
virtual void fun();
};
sizeof(s)=12
结论:虚函数会产生一个4字节的指针指向虚函数列表,而普通函数不会。