C语言中结构体计算大小的规则

2025-11-04 01:55:54

1、printf("char:%d\n",sizeof(char));

    printf("float:%d\n",sizeof(float));

    printf("int:%d\n",sizeof(int));

    printf("double:%d\n",sizeof(double));

//打印出各类型变量的大小

C语言中结构体计算大小的规则

2、printf("s1:%d\n",sizeof(struct s1));

    printf("s2:%d\n",sizeof(struct s2));

    printf("s3:%d\n",sizeof(struct s3));

    printf("s4:%d\n",sizeof(struct s4));

    printf("s5:%d\n",sizeof(struct s5));

    printf("s6:%d\n",sizeof(struct s6));

    printf("s7:%d\n",sizeof(struct s7));

//打印出各个结构体的大小

C语言中结构体计算大小的规则

3、struct s1{

    char ch1;//1

    char ch2;//1

    int i;//4

};//结构体花括号后面要记得加;

C语言中结构体计算大小的规则

4、struct s2{

    char ch1;//1

    int i;//4

    char ch2;//1

};

C语言中结构体计算大小的规则

5、struct s3{

    char ch;//1

    int i;//4

    char str[10];//10

};

C语言中结构体计算大小的规则

6、struct s4{

    char ch;//1

    int i;//4

    struct s{//8

        char ch1;//1

        int j;//4

    }stmp;//结构体只是一个声明,不占空间

    float f;//4

};

C语言中结构体计算大小的规则

7、struct s5{

    char ch;

    int i;

    union{         //联合结构体,只按照里面最大的来算

        char ch1;

        int j;

    };

};

C语言中结构体计算大小的规则

8、//#pragma pack(4)//指定向4,最大是8,如有超出指定范围,就按照指定范围的来计算

struct s6{

    char ch;//1

    int i;//4

    float f;//4

    double d;//8

    

};

#pragma pack(10)//如没有超出指定范围,就按照最大的来计算

struct s7{

    char ch;

    int i;

    float f;

    double d;

    

};

C语言中结构体计算大小的规则

9、运行程序,结构体的对齐方式很浪费空间,可是按照计算机的访问规则,效率提高了。

C语言中结构体计算大小的规则

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢