类中static成员内存分配与内存对齐情况
#include <iostream>
#include <vector>
using namespace std;
class Test1{
int val_int1;
};
class Test2{
static int val_int2;
};
class Test3{
int val_int3;
double val_double;
};
class Test4{
static int val_int4;
double val_double4;
};
class Test5{
private:
void func5_1(){};
void func5_2(){};
public:
static int val_int4;
double val_double4;
};
class Test6{
private:
void func6_1(){};
static void func6_2(){};
public:
static int val_int4;
double val_double4;
};
int main() {
cout <<"sizeof(Test1): " <<sizeof(Test1) << endl; // 4
cout <<"sizeof(Test2): " <<sizeof(Test2) << endl; // 1
cout <<"sizeof(Test3): " <<sizeof(Test3) << endl; // 16
cout <<"sizeof(Test4): " <<sizeof(Test4) << endl; // 8
cout <<"sizeof(Test5): " <<sizeof(Test5) << endl; // 8
cout <<"sizeof(Test6): " <<sizeof(Test6) << endl; // 8
Test1 t1;
Test2 t2;
Test3 t3;
Test4 t4;
Test5 t5;
Test6 t6;
cout <<"sizeof(t1): " <<sizeof(t1) << endl; // 4
cout <<"sizeof(t2): " <<sizeof(t2) << endl; // 1
cout <<"sizeof(t3): " <<sizeof(t3) << endl; // 16
cout <<"sizeof(t4): " <<sizeof(t4) << endl; // 8
cout <<"sizeof(t5): " <<sizeof(t5) << endl; // 8
cout <<"sizeof(t6): " <<sizeof(t6) << endl; // 8
return 0;
}
sizeof(Test1): 4
sizeof(Test2): 1
sizeof(Test3): 16
sizeof(Test4): 8
sizeof(Test5): 8
sizeof(Test6): 8
sizeof(t1): 4
sizeof(t2): 1
sizeof(t3): 16
sizeof(t4): 8
sizeof(t5): 8
sizeof(t6): 8