class内存对齐问题 (class中成员变量顺序改变)
#include <iostream>
using namespace std;
#pragma pack (8)
class Basic{
public:
char c;
char a;
int b;
double d;
};
int main(){
cout<<"Size of class:"<<sizeof(Basic);
}
#pragma pack ()
这个程序结果是16.
#include <iostream>
using namespace std;
#pragma pack (8)
class Basic{
public:
char a;
int b;
char c;
double d;
};
int main(){
cout<<"Size of class:"<<sizeof(Basic);
}
#pragma pack ()
而这个程序的结果却是24.
这是为什么呢??