C ~ 指针零散记录
2016.10.11 一个记录
void MB_float_u16(float f,uint16_t *a,uint16_t *b)
{
uint8_t *fp; ①
uint8_t *ap; ②
ap=(uint8_t*)a ③
fp=(uint8_t*)&f; ④
ap[]=fp[]; ⑤
ap[]=fp[]; ⑥
ap=(uint8_t*)b; ⑦
ap[]=fp[]; ⑧
ap[]=fp[]; ⑨
}
uint8_t *fp = uint8_t fp[] 两者等价 数组没有声明元素个数 则根据数组的使用自动匹配元素个数
32位系统中指针变量都占4个字节 只有在提取数据的时候才按照类型来分配。
fp=(uint8_t*)&f; 这里只是指向相同的地址 和数据
1、2:创建两个指针变量 fp ap
3: ap指向a 因为ap是uint8_t 类型的 所以强制转换 才能赋值
4:相同道理
5:实参 a地址的内容 a[1]等于浮点数 f (占四字节)最后一个字节的内容
6:实参 a地址的内容 a[0]等于浮点数 f 第三个字节的内容
7:将ap指向实参b
8:实参b地址的内容 b[1]等于浮点数 f 第二个字节的内容
9:实参b地址的内容 b[0]等于浮点数 f 第一个字节的内容
2016.10.11关于结构的一个记录
typedef struct 定义的结构体 在新定义变量时可省略struct ;直接使用struct 定义的结构体在声明新的结构体变量时不能省略struct
一个应用:
1、定义一个结构体类型
typedef struct TStest
{
uint8_t (*Init)(uint8_t para);
uint8_t *data;
}Test_Struct
注:如果这个结构只用一次可以不使用 结构体名TStest 如果多次使用的话加变量名
这里用了typedef 这样就可以用Test_Struct 代替struct TStest 了,使用typedef来命名一个结构体类型时,可以省略结构标记。
2、定义一个Test_Struct类型的结构体变量 并初始化它
Test_Struct UserType =
{
user_func;
buff;
}
这里的user_func 相对应的函数
uint8_t user_func(uint8_t para)
{
}
buff 对应相应的声明的变量 uint8_t buff[10];
3、调用时 定义一个Test_Struct类型的结构体指针 指向刚定义的结构体变量
Test_Struct * UserA = &UserType;
User -> Init(); UserA -> Data[]=a;
这样可以把一类的函数或变量归为一类 。
C ~ 指针零散记录的更多相关文章
- C++细节系列(零):零散记录
老规矩:记录细节,等待空余,再进行整理. 1:const,static,const static成员初始化. 1.const成员:只能在构造函数后的初始化列表中初始化 2.static成员:初始化在类 ...
- Mysql:零散记录
limit用法 查询第4行记录 select * from tablename limit 3,1; limit 3,1:截取第3行加1行的数据 查询第6-15行 select * from tabl ...
- 智能指针share_ptr记录
shared_ptr 是一个共享所有权的智能指针,允许多个指针指向同一个对象.shared_ptr 对象除了包括一个对象的指针,还包括一个引用计数器.当每给对象分配一个share_ptr的时候,引用计 ...
- 智能指针weak_ptr记录
智能指针weak_ptr为弱共享指针,实际上是share_ptr的辅助指针,不具备指针的功能.主要是为了协助 shared_ptr 工作,可用来观测资源的使用情况.weak_ptr 只对 shared ...
- ASP.NET Core学习零散记录
赶着潮流听着歌,学着.net玩着Core 竹子学Core,目前主要看老A(http://www.cnblogs.com/artech/)和tom大叔的博客(http://www.cnblogs.com ...
- python 零散记录(七)(下) 新式类 旧式类 多继承 mro 类属性 对象属性
python新式类 旧式类: python2.2之前的类称为旧式类,之后的为新式类.在各自版本中默认声明的类就是各自的新式类或旧式类,但在2.2中声明新式类要手动标明: 这是旧式类为了声明为新式类的方 ...
- python 零散记录(七)(上) 面向对象 类 类的私有化
python面向对象的三大特性: 多态,封装,继承 多态: 在不知道对象到底是什么类型.又想对其做一些操作时,就会用到多态 如 'abc'.count('a') #对字符串使用count函数返回a的数 ...
- python 零散记录(六) callable 函数参数 作用域 递归
callable()函数: 检查对象是否可调用,所谓可调用是指那些具有doc string的东西是可以调用的. 函数的参数变化,可变与不可变对象: 首先,数字 字符串 元组是不可变的,只能替换. 对以 ...
- python 零散记录(五) import的几种方式 序列解包 条件和循环 强调getattr内建函数
用import关键字导入模块的几种方式: #python是自解释的,不必多说,代码本身就是人可读的 import xxx from xxx import xxx from xxx import xx1 ...
随机推荐
- iOS 在Xcode中使用OpenSSL库
最近要做一个密码键盘,想内置一些加密算法,所以就想到了添加OpenSSL库,现在mac也自带了OpenSSL库,但是每次都从终端是生成是很麻烦的.网上找了很多文档.博客去介绍如何编译可以在Xcode中 ...
- HDU1087上升子序列的最大和
解法一 此题是一个简单的动态规划问题,用dp[i]记做最后一步经过第i个数所得到的最大sum值,则结果=max(dp[i]),i=1,...n.考虑dp[i]的前一步会经过那里?假设dp[i]的前一 ...
- 算法之美--2.2 Array
2016-12-02 00:24:12 利用抽象数据类型实现Array:主要用C++模板实现数组类:体会一个完整的C++类的写法,能顺利写出来的人不多了,特别是对复制构造函数和重载= []运算, ...
- springnodejs
作者 : solq 最新文档请看 http://www.springnodejs.com 本文不再更新 blog : http://www.cnblogs.com/solq/p/3574640.htm ...
- AngularJS中Route例子
代码:https://files.cnblogs.com/files/xiandedanteng/angularJSRouteSample.rar 点击‘首页’后: 点击‘电脑’后: <!DOC ...
- vue2 疑难问题 解析
1.[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent ...
- UML--组件图,部署图
组件图用于实现代码之间的物理结构,详细来说,就是实现代码交互.通过接口,将不同的软件,程序连接在一起. [理解] 1.组件的定义相当广泛,包含:源码,子系统,动态链接库,Activex控件. 2.组件 ...
- [BLE--Link Layer]物理信道
简述 有线通信,是用电缆直接连接.然后分距离的长短.有些会须要载入波,信号也可能会经过不同的调制方式调制. 无线通信也是一样,仅仅是信号的传输是通过射频了,通过在某一频段.对无线信道进行调制,将数据发 ...
- 存储过程清理N天前数据
CREATE OR REPLACE PROCEDURE APICALL_LOG_INTERFACE_CLEAN ( CLEANDAY IN Number --天数 ) AS v_cleanDay nu ...
- js嵌套Struts2标签
在页面中如果想要在js代码块里面获取到某些值,而这些值是通过Struts的标签取到的, 如: var operatorType = '<s:property value="#sessi ...