sizeof计算结构体长度

    xiaoxiao2021-03-25  286

    sizeof()是一种内存容量度量函数,计算数据(数组、变量、类型、结构体等)所占空间,用字节数表示。

    sizeof在计算变量所占的空间大小时所选取的机制:

    1.结构体满足的三个条件

    结构体的大小等于结构体内最大成员大小的整数倍;

    结构体内的成员相对于首地址的偏移量是当前成员大小的整数倍,如有需要会在成员之间填充字节;

    (结构体变量的首地址能被其最大成员大小所整除。)

    如:

    struct A { char a; int b; };

    大小1(char)+3(填充)+4(int)=8,sizeof(A)=8

    struct B { char a; A a1; char b; }; 大小是1(char)+3(填充)+8(A)+1(char)+3(填充)=16,所以sizeof(B)=16

    2.指针

    指针实为地址,取决于字长,32位为4字节,64位为8字节,但也与编译器有关。

    转载请注明原文地址: https://ju.6miu.com/read-1772.html

    最新回复(0)