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 ...
随机推荐
- 【spring cloud】【spring boot】项目启动报错:Cannot determine embedded database driver class for database type NONE
解决参考文章:https://blog.csdn.net/hengyunabc/article/details/78762097 spring boot启动报错如下: Error starting A ...
- MySQL主从同步异常问题解决Client requested master to start replication from position > file size
MySQL主从同步异常问题解决Client requested master to start replication from position > file size 一.问题描述 MySQ ...
- Linux命令之basename 命令
用途 返回一个字符串参数的基本文件名称. 语法 basename String [ Suffix ] 描述 basename 命令读取 String 参数,删除以 /(斜杠) 结尾的前缀以及任 ...
- Libimseti推荐系统
技术:easyUI.jQuery.Spring.Struts.Hibernate.Mahout.MySQL 本Libimseti推荐系统使用数据.代码參考<Mahout in action> ...
- 谈论程序中的token
-> //指针,一旦符号分开就会成以下两个意思,我们一定要注意符号 - //减号 > //大与 int a,big; if(x>big) big = x; C语言以及一些其它语言会自 ...
- [JS][jQuery]清空元素html("")、innerHTML="" 与 empty()的差别:关于内容泄露问题
清空元素html("").innerHTML="" 与 empty()的差别 一.清空元素的差别 1.错误做法一: $(&quo ...
- PHP增加$_ENV变量
在日常开发过程中,我们常常会将一些系统或模块配写在配置文件里.这样便于程序维护与修改.通常的配置文件有.ini , .xml等.配置文件的好处在于:1,便于管理.2,可读性高.但是,使用配置文件也会有 ...
- Struts2学习五----------指定多个配置文件
© 版权声明:本文为博主原创文章,转载请注明出处 指定多个配置文件 - 在Struts2配置文件中使用include可指定多个配置文件 实例 1.项目结构 2.pom.xml <project ...
- ubuntu16.04 下安装opencv2.4.9
准备工作,安装环境 sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-nump ...
- 想全面理解JWT?一文足矣!
有篇关于JWT的文章,叫"JWT: The Complete Guide to JSON Web Tokens",写得全面细致.为了自己能更清晰理解并惠及更多人,我把它大致翻译了过 ...