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 ...
随机推荐
- Autolayout 03
Debugging in Code 有两个调试layout问题的阶段. 1. Map from “this view is in the wrong place” to “this constrain ...
- iphone之判断屏幕方向
有两种方法可以判断 1,程序刚开始运行的时候,不能获取当前方向.给你说几种方式,你试一下: 1. 可以在启动后0.01秒执行初始化的代码,这个时候就可以获取设备方向了. 2. 另外一种方式,借助状态栏 ...
- GLSL 基础量定义 【转】
转载:http://blog.csdn.net/misol/article/details/7658949 GLSL语法跟C语言非常相似: 1.数据类型: GLSL包含下面几种简单的数据类型 fl ...
- Shell脚本部分语法
Shell中的变量 Linux Shell中的变量分为“系统变量”和“用户自定义变量”,可以通过set命令查看那系统变量 系统变量:$HOME.$PWD.$SHELL.$USER等等 显示当前sh ...
- hdu1595 find the longest of the shortest(Dijkstra)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1595 find the longest of the shortest Time Limit: 100 ...
- Mockito使用指南
转载请标明出处:http://blog.csdn.net/shensky711/article/details/52771493 本文出自: [HansChen的博客] mock和Mockito的关系 ...
- js 模拟发短信
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 微信小程序-关于日期选择器(input)
小程序并没有input带有日期组件(只有picker组件带日期),要不自创,要不就用picker把选中的值放入input当中 wxml js 因为会触发input,所以禁用它就可以了
- vuex 深入理解
参考自:https://mp.weixin.qq.com/s?src=11×tamp=1528275978&ver=922&signature=ZeHPZ2ZrLir ...
- socket 、 udp 和 tcp
强调一点: socket . udp . tcp之间的区别. socket只是一种套接字,就是两台电脑两端的东西,中间传输以流的格式进行. IBEO好像是TCP/IP , 无论对于TCP和UDP, ...