C中结构体的存储分配

样例程序:

#include<stdio.h>
struct s1{
    char sa;
    int sb;
};

int main(){
    printf("int %d\n", sizeof(int));
    printf("char %d\n", sizeof(char));
    printf("struct s1 %d\n", sizeof(struct s1));
}

int 4字节
char 1字节
struct s1 不是5字节,而是8字节

因为编译器为了执行的效率,所以struct的存储分配进行了字节对齐,它的大小要取决于其中最宽类型的大小。此时char之后会被添加填充字节,满足int的宽度。

—-

我决定收拾收拾打道回府了,在图书馆也没啥效率…听douban到是听的挺high

Tags :

0 thoughts on “C中结构体的存储分配”

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Click the right image To submit your comment: