基本指针,数组,结构体
来源:互联网 发布:js signature生成 编辑:程序博客网 时间:2024/06/10 19:35
记录下自己比较灵活比较实用的用法。
指针在函数中的数值传递
mpu6050读取的一个例子:
void GetData(T_float_angle *dmp_angle,T_short_xyz *gyr,T_short_xyz *acc){ if(mpu_dmp_get_data(&dmp_angle->pit,&dmp_angle->rol,&dmp_angle->yaw)==0) { mpu6050_GetGyroData(&gyr->x,&gyr->y,&gyr->z); mpu6050_GetAccData(&acc->x,&acc->y,&acc->z); }}
下面这样调用它(变量已在前面定义):
void DataRefresh(void){ static u8 rc_cnt=0; GetData(&MPU_Angle,&MPU_Gyr,&MPU_Acc); //在此引用 while(ERROR!=NRF_Rx_Dat(RX_BUF)); DataReceiveTransfer(RX_BUF,32,&Rc_in); Rc_Fun(&Rc_in,FLY_Lock);}
这样使用的优势在于可以减少变量的定义,把自己需要用到的变量在调用函数的同时讲变量进行不同函数之间的传递,减少中间变量的定义,使得思路清晰,方便。
指针与数组的关系
举一个例子:
void usart1_SendBuf(u8 *buf,u8 len){ int i; for(i=0;i<len;i++) usart1_SendChar(*(buf+i)); //可以换成usart1_SendChar(*buf); buf++;}
用过调用
u8 code[5]={1,2,3,4,5};
usart1_SendBuf(code,5);
可以实现。
这说明数组名相当于一个指针,同时数组名所在的地址就是指向指针的首个地址。
结构体的定义
一个典型的例子
typedef struct int16_xyz{ int16_t X; int16_t Y; int16_t Z;}T_int16_xyz;
通过struct定义了结构体名为int16_xyz,里面包含了int16_t X,Y,Z三个变量,为了方便定义用了typedef方便这个结构体声明类型T_int16_xyz。
只需调用T_int16_xyz GYRO;
这时GYRO中包含了X,Y,Z三个整型变量。
使用结构体会使得结构清晰,提高代码的可读性。
0 0
- 基本指针,数组,结构体
- 结构体数组指针
- 结构体指针数组
- 结构体&结构体指针&结构体指针数组
- 数组、结构体、指针1
- 数组、结构体、指针2
- 数组、结构体、指针3
- 数组、结构体、指针4
- 结构体指针和数组
- 数据结构 - 指针,数组,结构体
- 结构体数组指针memset
- 结构体数组与指针
- 结构体,数组,指针,地址
- 结构体指针访问结构体数组
- 结构体数组和结构体指针
- 结构体指针和结构体数组
- 结构体数组基本实现
- 指针结构体_数组指针结构体_指针数组结构
- 每天一个linux命令(13):less 命令
- 斐波那契数列
- .NET项目JAVA重构之压缩&解压缩
- IOS 设置label背景颜色
- Android学习笔记
- 基本指针,数组,结构体
- 微信红包随机算法初探
- 【信息资源管理】----各章通读,重点标记。
- 怎么才能自定义iMindMap中图形
- VC宽字节与多字节转换,应之一 CString宽字节转char
- poj 1789 最小生成树
- Linux下activeMQ的安装和启动
- Android 动画 ObjectAnimator基本使用
- migrate android code解决办法