-
函数原型
include <stdio.h>
int snprintf(char *str, size_t size, const char *format, ...);
str: 目的内存空间地址;
size: 最大可用的目的内存空间大小;
format:格式化字符串(类似printf);
... : 可选参数,与format中的占位符相关(类似printf).
-
函数功能
该函数可以将不同的内容(ex. int)按照期望的既定格式打印成字符串,并保存到buffer中。
比如需要将十进制数 20 转换为两bytes十六进制字符串的时候,可以使用该函数实现。
int ret;
char hex[10];
ret = snprintf(hex, sizeof(hex), "0X%04X", 20);
"0X%04X" 表示会先加上0X前缀,通常用来表示是十六进制;后面%04X是指按大写十六进制打印,且需要占据4位字符的宽度,不够4位时补0。所以最终的字符串格式会是“0X0014”。
-
特别注意
1. 无论何时一定会在字符串末尾添加'\0' 字符串结束符。
- 当字符串长度小于size时ÿ