c语言结构体大小 sizeof(struct A)

时间:2022-03-10 04:16:06

1,数据类型自身对齐

数据类型的起始地址为其大小的整数倍

2,结构体的自身对齐

结构体的自身对齐值为其中最大的成员大小

3,指定对齐

可以使用关键词#pragma pack(1) 来指定结构体的对齐值

4,有效对齐值

有效对齐值为自身对齐值与指定对齐值中较小的一个。(即指定对齐值超过自身对齐值无意义)

 1 #include<stdio.h>
2 struct {
3 int a; //单个为4
4 char b[3]; // 单个大小为1 因为是数组总和为3
5 double c; //单个为4
6 }size;
7 int main() {
8 int v;
9 v=sizeof(size);
10 printf ("%d",v); //结果为 16 为4的整数倍补齐
11 return 0;
12 }