c++ sizeof和alignof区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TH_NUM/article/details/86551189

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

猜你喜欢

转载自blog.csdn.net/TH_NUM/article/details/86551189