首页 > 代码库 > c语言结构体大小 sizeof(struct A)

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

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 }

 

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