【相关杂项】stdio.h中的sprintf函数/union的作用
2024-10-22 11:26:52
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型数组,节省空间的同时确保了代码的简洁
最新文章
- android持久化技术
- 今天自己解决了两个问题(IE10 type slow ChromeDriver erro)
- 安卓和ios的lineheight的不一样如何解决?
- powershell中的两只爬虫
- 微信公众平台开发(110) 微信连Wi-Fi
- Js笔试题之返回只包含数字类型的数组
- flask学习
- Js监控回车事件
- ES6-模块化
- uC/OS-II 内存管理
- web报表工具FineReport使用中遇到的常见报错及解决办法(二)
- WIn10系统软件默认安装c盘后消失看不见问题
- python3.6新特性
- MyCAT简易入门 (Linux)
- TCGA phenotype各列的含义
- Spring cloud和Dubbo
- SQL 复习笔记 MSSQL篇
- oracle 在存储过程或函数中得到异常sql
- sql注入语句整理
- 纯正商业级小程序开发(完结版).txt
热门文章
- NextCloud 17.0.1 升级到NextCloud 23.0.0
- DOS命令操作
- 20203412马畅若 实验二《Python程序设计》实验报告
- vue.cli的安装配置
- 05 Java 数组
- django中读取settings中的相关参数
- grep 排除目录 grep -rn CONFIG_VE --exclude-dir={arch,drivers,net} --exclude=cscope*
- grep展示相邻行
- 谈谈关于CDN缓存
- Yocto Project Mega-Manual 英文版 (2020官方最新合并版575页),Yocto官方文档中文版,Yocto官方文档英文版