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 ~ 指针零散记录的更多相关文章

  1. C++细节系列(零):零散记录

    老规矩:记录细节,等待空余,再进行整理. 1:const,static,const static成员初始化. 1.const成员:只能在构造函数后的初始化列表中初始化 2.static成员:初始化在类 ...

  2. Mysql:零散记录

    limit用法 查询第4行记录 select * from tablename limit 3,1; limit 3,1:截取第3行加1行的数据 查询第6-15行 select * from tabl ...

  3. 智能指针share_ptr记录

    shared_ptr 是一个共享所有权的智能指针,允许多个指针指向同一个对象.shared_ptr 对象除了包括一个对象的指针,还包括一个引用计数器.当每给对象分配一个share_ptr的时候,引用计 ...

  4. 智能指针weak_ptr记录

    智能指针weak_ptr为弱共享指针,实际上是share_ptr的辅助指针,不具备指针的功能.主要是为了协助 shared_ptr 工作,可用来观测资源的使用情况.weak_ptr 只对 shared ...

  5. ASP.NET Core学习零散记录

    赶着潮流听着歌,学着.net玩着Core 竹子学Core,目前主要看老A(http://www.cnblogs.com/artech/)和tom大叔的博客(http://www.cnblogs.com ...

  6. python 零散记录(七)(下) 新式类 旧式类 多继承 mro 类属性 对象属性

    python新式类 旧式类: python2.2之前的类称为旧式类,之后的为新式类.在各自版本中默认声明的类就是各自的新式类或旧式类,但在2.2中声明新式类要手动标明: 这是旧式类为了声明为新式类的方 ...

  7. python 零散记录(七)(上) 面向对象 类 类的私有化

    python面向对象的三大特性: 多态,封装,继承 多态: 在不知道对象到底是什么类型.又想对其做一些操作时,就会用到多态 如 'abc'.count('a') #对字符串使用count函数返回a的数 ...

  8. python 零散记录(六) callable 函数参数 作用域 递归

    callable()函数: 检查对象是否可调用,所谓可调用是指那些具有doc string的东西是可以调用的. 函数的参数变化,可变与不可变对象: 首先,数字 字符串 元组是不可变的,只能替换. 对以 ...

  9. python 零散记录(五) import的几种方式 序列解包 条件和循环 强调getattr内建函数

    用import关键字导入模块的几种方式: #python是自解释的,不必多说,代码本身就是人可读的 import xxx from xxx import xxx from xxx import xx1 ...

随机推荐

  1. 了解什么是WebLogic Server 多数据源(Multi-DataSource)

      1. 什么是多数据源 我们知道配置WebLogic Server集群时一定要配置一个单一接入点(例如:Apache或F5),这样客户端只要访问这个单一入口点就可以了.对于客户来说,就好象访问一台服 ...

  2. python pandas相关知识点(练习)

    首先引入库文件,并进行数据读取 import pandas as pd import numpy as np data_Base=pd.read_csv("D:\\Exam_Test\\un ...

  3. Windows脚本\批处理命令学习笔记

    1.为新建变量赋值: set 变量=值 2.输出变量的值 echo %变量% 3.关闭批处理中命令行的显示(默认是显示命令行的) 在文件開始处增加:echo off 若需又一次显示:echo on 若 ...

  4. 【React Native开发】React Native控件之DrawerLayoutAndroid抽屉导航切换组件解说(13)

    ),请不要反复加群! 欢迎各位大牛,React Native技术爱好者增加交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文章技术推送! 该DrawerLayoutAndroid组件封 ...

  5. 登陆界面综合实例+spinner下拉列表框详解

      点击确定: 点击修改:     想到Spinner下拉按钮可以通过两种方法生成 方法一: 1.在array数组里面定义数组 代码如下: <resources> <st <? ...

  6. iOS 瀑布流封装

    代码地址如下:http://www.demodashi.com/demo/12284.html 一.效果预览 功能描述:WSLWaterFlowLayout 是在继承于UICollectionView ...

  7. iBatis2 SqlMap中经常使用sql语句

    本来我也不喜欢iBatis,那是由于我当时还不怎么会用它,如今我想说,iBatis是个好东西,不信你试试看.以下是我在项目实践中对iBatis的一个小总结.希望帮助众多在疲于iBatis编码而无暇思考 ...

  8. android利用apkplug框架实现主应用与插件通讯(传递随意对象)实现UI替换

    时光匆匆,乍一看已半年过去了,经过这半年的埋头苦干今天最终有满血复活了. 利用apkplug框架实现动态替换宿主Activity中的UI元素.以达到不用更新应用就能够更换UI样式的目的. 先看效果图: ...

  9. Spark源码分析之一:Job提交运行总流程概述

    Spark是一个基于内存的分布式计算框架,运行在其上的应用程序,按照Action被划分为一个个Job,而Job提交运行的总流程,大致分为两个阶段: 1.Stage划分与提交 (1)Job按照RDD之间 ...

  10. Linux 批量替换的一种实现方式

    替换某目录下所有文件中的某个字符: sed -i 's/origin_str/new_str/g' `grep origin_str -rl ./` origin_str:被替换的字符串: new_s ...