Chinaunix首页 | 论坛 | 博客
  • 博客访问: 187511
  • 博文数量: 54
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2018
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-31 23:14
文章存档

2014年(2)

2013年(52)

分类: 嵌入式

2013-08-05 18:37:38

结构体:
<-.成员 二是字节对齐>

#pragma pack(4)
struct A{
XXXXXX;
}__attribute((packed)) a;

--------------------------------------------
结构体:数据类型的集合
结构体的定义:
1.struct A{
int num;
char name[20];
int score;
};//定义新的数据类型
struct A 变量名[,变量名,变量名[M]];//非常常见
struct A  xiaoming,xiaohong,cd13081[38];

2.struct A {
int num;
char name[20];
int score;
}变量名[,变量名,变量名[M]];//用的少
3.stuct {//省略数据类型名字
int num;
char name[20];
int score;
}变量名[,变量名,变量名[M]];//几乎不用

2.结构体的初始化:
1.struct stu{
int num;
char name[20];
int score;
};//定义新的数据类型
int a=4;
1) struct stu a={1,"xiaoming",90};//int a=3;-------非常常用
2) struct  stu a = {
.num =1,
.name = "xiaoming",
.score = 99,//最后一个逗号可以省略,<但是在开发中往往是写上>
};//----------最常用
3) struct stu a[2] ={
{1,"xiaoming",90},
{2,"xiaohong",98},
}; //常用
--------------
struct stu a[2] ={
[0].num =1,
[0].name ="xiaoming",
[0].score =91,

[1].num =2,
[1].name ="xiaohong",
[1].score =99,
}; //不常用
----------------------------------
结构体的访问:
直接访问  变量名.成员
------------
间接访问  指针名->成员


--------------------------
结构体与指针:
结构体指针:地址(结构体的地址),访问(操作结构体成员)
结构体成员与指针{
普通指针
函数指针
结构体指针
}
结构体指针做函数参数:
fun(struct stu *p)
---------------------------------------
通过结构体名访问成员,得到的是成员的本身属性
-----------------------------------------
字节对齐:(非标准解释)
1.编译器对齐
2.地址对齐

笔记:在不超过电脑默认对齐时(4)

1. 对齐分两种:
内对:成员对齐值 = 如果成员本身对齐值 与  默认对齐值比-----按最小的对齐值对齐
外对齐:结构体对齐--------成员最大对齐值
2.地址对齐:结构存放地址--------(了解)
阅读(1136) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~