关于 结构体 的使用
来源:互联网 发布:战地之王透视源码 编辑:程序博客网 时间:2024/05/21 12:45
上一次,在看液晶的驱动程序的时候,了解了结构体其实跟数组一样是按地址顺序排列的.只不过,结构体里的成员变量 是长短不一的,而不像数组都是统一长度.
在一个新的项目中,因为发送数据的长度,存在长短不一,每个成员的名称和功能又不一样,所以觉得在这里使用结构体合适一点.
我定义了一给结构体类型:
typedef struct
{
u16 send_fpga_x_start;
u16 send_fpga_y_start;
u16 send_fpga_x_end;
u16 send_fpga_y_end;
u16 scaler_V_DISP_in;
u16 scaler_H_DISP_in;
u16 scaler_VSFACTOR;
u16 scaler_HSFACTOR;
} video_size;
这是是需要计算出来并发送给串口的值,这样定义可比数组更加的直观.
然后,video_size self_size 定义一个实体 ,通过函数.calculate()把数据计算出来,存放在这个实体里.然后通过send_parameter(),用串口,以字节为单位发送给fpga.这就需要传递,如果使用地址传递结构体指针.
首先,calculate(u16 *p) 定义了一个u16 的地址指针,表示每个地址指向的是一个u16的存储单元.然后,在使用的时候,calculate((u16 *)&self_size).结构体并不像数组,名称就是地址.而是需要取地址,再强制转换地址类型. 最后,send_parameter((u16 *)&self_size),
还有第二种定义使用的方法:calculate(video_size *p),这样就可以直接使用了.calculate(&self_size).
算是亲身经历吧,结构体在某些环境下使用的确要比用数组让人感觉舒服.
- 关于 结构体 的使用
- 关于结构体的使用
- 关于结构体的内存空间使用
- 关于SCROLLINFO结构的使用
- 关于结构体函数使用
- 关于全局结构体的定义和使用
- 关于类和结构体中静态成员的使用
- 关于MATLAB中结构数组的使用
- 关于LabVIEW事件结构的使用
- 关于结构体的大小
- 关于结构体的问题
- 关于结构体的困惑
- 关于结构体的大小
- 关于结构体的说道
- 关于结构体的几个问题
- 关于结构体的复制
- 关于结构体的思考
- 结构体的使用
- 17款最佳的代码审查工具
- poj1250 Tanning Salon
- MLlib分类算法实战演练--Spark学习(机器学习)
- 各种DP的总结
- Markdown写作语法
- 关于 结构体 的使用
- 138. Copy List with Random Pointer
- MarkdownPad注册码
- 批量卸载windows程序
- .html(),.text()和.val()的使用
- Snow Footprints
- 20170306-java
- 超越时代的智商、和横穿社会的苦逼
- CSDN客户端问题