结构体大小
1 #include<stdio.h>
2 #include <stdlib.h>
3
4 /*
5
6 结构体大小大于等于所有成员的大小之和
7 char int double float //基本类型 double最宽基本成员
8 结构体的大小必须可以整除最宽基本成员
9 结构体成员的地址-结构体的首地址 =偏移量,必须是当前成员整数倍
10 结构体尾部不足的部分,就会被填充
11 结构体对齐,注意,节约内存
12 结构体中只有一个元素不存在对齐
13 可以手动设置编译器来设置来设置结构体成员对齐(右击项目选择属性->C/C++->代码生成-->结构体成员对齐)
14
15 */
16
17 struct MyStruct
18 {
19 char num1;
20 double num4;
21 int num3;
22 char num5;
23 double num2;
24
25 };
26
27 struct MyStructX
28 {
29 char num1;
30 double num4;//只有一个元素,不存在对齐
31 };
32
33 void main()
34 {
35 struct MyStruct my1;
36 printf("%d", sizeof(struct MyStructX));
37 printf("\n%p", &my1);
38 printf("\n%p", &my1.num1);//取出结构体成员的地址
39 printf("\n%p", &my1.num4);
40 printf("\n%p", &my1.num3);
41 printf("\n%p", &my1.num2);
42 system("pause");
43 }
长风破浪会有时,直挂云帆济沧海
posted on 2015-05-18 13:10 Dragon-wuxl 阅读(128) 评论(0) 收藏 举报
浙公网安备 33010602011771号