1、定义int sprintf(char *str, const char *format, ...)

        1、paras:*str:目标字符串首指针

 *format:要写入目标字符串的数据

...:写入目标字符串数据中被转换的变量

        2、对于*format的说明:

属性:%[flags][width][.precision][length]specifier

举例:3.1f       浮点型,宽度为3,保留一位小数

详见参考:C 库函数 - sprintf()

        3、使用例:

float x = 3.141;
unsigned char buffer[10]
sprintf(buffer, "x= %3.1f", x);

结果:>>"x=     3.1"

2、union的作用:

惭愧没好好学C语言,只知道struct,看到union顿时陌生,不过短暂了解以后发现union在很多地方都相当常用

1、union和struct类似在于,都是不同数据类型的数据的集合,不同在于,struct中的每个成员都单独分配有存储空间,而union的成员则共享存储空间,union所占的存储空间由其中最长的成员决定,当对union的一个成员赋值时,这个空间就写入这么一个值,而原先的值就会被覆盖

2、union的应用很多,尤其对于当需要将数据拆分存储时,会用到union,例如:

union flo_to_ch
{
float f_num;
unsigned char u_num[4];
}; union flo_to_ch temperature; write_eeprom(0,temperature.u_num[0]);i2c_delay(200);i2c_delay(200);
write_eeprom(1,temperature.u_num[1]);i2c_delay(200);i2c_delay(200);
write_eeprom(2,temperature.u_num[2]);i2c_delay(200);i2c_delay(200);
write_eeprom(3,temperature.u_num[3]);i2c_delay(200);i2c_delay(200);

通过union将float型拆分成了长度为4的char型数组,节省空间的同时确保了代码的简洁

【相关杂项】stdio.h中的sprintf函数/union的作用的更多相关文章

  1. 走进C标准库(2)——"stdio.h"中的fopen函数

    其他的库文件看起来没有什么实现层面的知识可以探究的,所以,直接来看stdio.h. 1.茶余饭后的杂谈,有趣的历史 在过去的几十年中,独立于设备的输入输出模型得到了飞速的发展,标准C从这个改善的模型中 ...

  2. C语言中头文件<stdio.h>中的#ifndef _STDIO_H_

    先了解这里的相关知识:http://www.cnblogs.com/stemon/p/4000468.html 头文件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都in ...

  3. 走进C标准库(5)——"stdio.h"中的其他部分函数

    函数介绍来自:http://ganquan.info/standard-c/ 函数名: freopen 功  能: 替换一个流 用  法: FILE *freopen(char *filename, ...

  4. 走进C标准库(3)——"stdio.h"中的getc和ungetc

    接前文. 再来看看getc和ungetc的实现.在看这两个函数的实现之前,我们先来想一想这两个函数分别需要做的工作. int getc(FILE *stream) 说明:函数getc从stream指向 ...

  5. C++中对sprintf()函数的说明(转)

    在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望.由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出 ...

  6. 走进C标准库(4)——"stdio.h"中的putc

    花了点时间把园子弄得好看了点,现在继续. 函数名: putc 功  能: 输出一字符到指定流中 用  法: int putc(int ch, FILE *stream); #define _putc_ ...

  7. C语言string.h中常用字符函数介绍

    原文:http://www.cnblogs.com/xuwenmin888/archive/2013/05/03/3057883.html strcpy 函数名: strcpy 功 能: 拷贝一个字符 ...

  8. C语言中math.h中常用的函数

    1.绝对值 ①函数原型: int abs(int x); 函数功能: 求整数x的绝对值 int number=-1234; abs(number); ②函数原型:double fabs(double ...

  9. math。h中的log函数的应用

    以10为底的log函数: 形式为 double  log10(double  x) 以e为底的log函数(即 ln)double log (double x) 如何表达log 以a为底b的对数: 用换 ...

  10. makefile中的patsubst函数有何作用?

    答:这是个模式替换函数,格式为: $(patsubst <pattern>,<replacement>,<text>) 查找text中的单词,如果匹配pattern ...

随机推荐

  1. C# 读取串口设备列表

    ManagementObjectSearcher 解析不到头文件,需要手动 Add Referance 需要添加引用:System.Management,然后引入命名空间:using System.M ...

  2. Java-获取真实用户ip

    1 import common.util.StringUtil; 2 import org.springframework.web.bind.annotation.ModelAttribute; 3 ...

  3. About TopoJSON

    An extension of GeoJSON that encodes topology!  TopoJSON https://github.com/topojson/topojson The To ...

  4. 最近录了一些python视频教程

    最近录了一些python视频教程,目前有机器学习的.python基础知识的,大家可以去B站观看. https://space.bilibili.com/431152063 python机器学习之KNN ...

  5. go 的internal 目录

    Go 语言中的软件包推荐按照:组织名/项目名 的形式安排软件包的文件目录结构,一般「项目名」文件目录下还会按照功能.抽象约定.具体实现等维度再划分一些子目录.在 Go 语言里包的导入路径不同则被判定为 ...

  6. 杂:python获取所有盘符简单粗暴版

    def _test_p_get_all_driver():    l = []    for i in range(97, 123):        d = chr(i) + ':\\'        ...

  7. Install MySQL wsl1

    To install MySQL on WSL (ie. Ubuntu) env Ubuntu 22.04.1 LTS mysql Ver 8.0.32-0ubuntu0.22.04.2 for Li ...

  8. Mybatis二级缓存(2)

    10.3.一级缓存的原理 10.3.3 一级缓存的测试

  9. nxp imx8m与imx6 使用VPU时,申请CMA的区别

    imx8mp是什么时候申请CM的: imx8mp是我自己看的,imx6不一定保熟. imx8mp: imx6:

  10. for in | for in 比较 解释 | 以后找知识点先从这里面搜索

    const obj = { a: 1, b: 2, c: 3 } for (let i in obj) { console.log(i) // a // b // c } for (let i of ...