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 ...
随机推荐
- Linux下测试PHP和MySQL是否正确安装
测试PHP: 本打算这样配置: 1.拷贝PHP配置文件 cd /usr/local/php/etc cp php.ini /usr/local/php/lib/php.ini 2.修改apache配置 ...
- DotnetBrowser高级教程-(4)使用MVC框架2-接收与返回模型
在上一节,我们搭建了基本的mvc框架,这一节,我们将实现数据的接受与返回,具体操作如下: 1.新建Model目录,新增模型类Person.cs,代码如下: public class Person { ...
- 2017.2.22 activiti实战--第六章--任务表单
学习资料:<Activiti实战> 第六章 任务表单 本章将一步步完成一个协同办公系统(OA)的请假流程的设计,讲解如何将Activiti和实际业务联系起来. 首先讲解动态表单与外置表单的 ...
- 2016.11.10 Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver
运行项目rds_web时,出现错误提示:Could not get JDBC Connection; nested exception is java.sql.SQLException: No sui ...
- How do you stop Ansible from creating .retry files in the home directory?
There are two options that you can add to the [defaults] section of the ansible.cfg file that will c ...
- asp.net母版-页脚制作
1.母版创建流程略过 2.创建母版页css:Site.css body{ } .linkButton{ text-decoration:none; color:whitesmoke; } 3.母版页添 ...
- 基于Repository模式设计项目架构—你可以参考的项目架构设计
关于Repository模式,直接百度查就可以了,其来源是<企业应用架构模式>.我们新建一个Infrastructure文件夹,这里就是基础设施部分,EF Core的上下文类以及Repos ...
- 使用Docker开发NodeJs APP
英文版原文地址 这是两篇连载文章的第一篇,讲解了如何使用 Docker 替代 Vagrant 开发基于 Express 框架的NodeJs App的部分细节.不过,这次要增加点难度:我们要使用 con ...
- Xenomai PC开发环境
这两天总在纠结编译一个PC机上的Xenomai开发环境,选择编译器.kernel版本和IPIP版本,但是今天忽然想到,上位机只是个开发环境,只要能编译.能运行就可以了,实时性根本不是关注的东西.而Xe ...
- python学习(一)运行第一个python脚本
当然这里指的是在linux或者unix下,像写bash脚本那样 #!/usr/bin/python print('The Bright Side ' + 'of Life...') 反正我建议就算一开 ...