sizeof : 获取内存存储的大小。
alignof : 获取地址对其的大小,POD里面最大的内存对其的大小。
例子:
struct A{ //non-POD type
int avg;
int avg2;
double c;
A(int a,int b):avg((a+b)/2){
}
};
struct B{
int avg;
int avg2;
char c;
};
using namespace std;
int main() {
cout<<"sizeof(A):"<<sizeof(A)<<endl;
cout<<"alignof(A):"<< alignof(A)<<endl;
cout<<"sizeof(B):"<<sizeof(B)<<endl;
cout<<"alignof(B):"<< alignof(B)<<endl;
}
输出:
sizeof(A):16
alignof(A):8
sizeof(B):12
alignof(B):4