printf 应用
来源:互联网 发布:linux u盘启动 windows 编辑:程序博客网 时间:2024/06/02 21:54
正点原子,一段串口程序:
void
u2_printf(
char
* fmt,...)
{
va_list
ap; //定义一具VA_LIST型的变量ap,这个变量是指向参数的指针
va_start
(ap,fmt);//初始化变量ap
vsprintf
((
char
*)USART2_TX_BUF,fmt,ap);//将变量ap,按照fmt格式,存在数组USART2_TX_BUF中
va_end
(ap); //用VA_END宏结束可变参数的获取
////////////////////////分割线//////////////////////////////////////////
while
(DMA1_Channel7->CNDTR!=0);
//等待通道7传输完成
UART_DMA_Enable(DMA1_Channel7,
strlen
((
const
char
*)USART2_TX_BUF));
//通过dma发送出去
}
相关知识:
u2_printf(char
* fmt,...
) 类似于int printf(const char *fmt, ...);
int printf(const char *fmt, ...); // 逗号,后面,即第二个参数是三个点
printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。
目的:
方便输入可变参数。
va_list
VA_LIST 是在C语言中解决变参问题的一组宏。
vsprintf 的函数原型:
int vsprintf(char *string, char *format, va_list param);
//将param 按格式format写入字符串string中
总体上, 分割线前,就是把数据按照一定的格式保存在数组中。分割线后,发送数组中的数据。
函数特点:函数参数个数可变。
相关参考链接:
https://baike.baidu.com/item/va_list/8573665?fr=aladdin
https://baike.baidu.com/item/printf/7467706?fr=aladdin
https://zhidao.baidu.com/question/255040285.html
u
unsigned int无符号10进制整数x / X
unsigned int无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)f(lf)
float(double)单精度浮点数用f,双精度浮点数用lf(尤其scanf不能混用)e / E
double科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写g / G
double有效位数,如:%8g表示单精度浮点数保留8位有效数字。双精度用lgc
char字符型。可以把输入的数字按照ASCII码相应转换为对应的字符s / S
char * / wchar_t *字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符)p
void *以16进制形式输出指针nint *到此字符之前为止,一共输出的字符个数,不输出文本%
无输入不进行转换,输出字符‘%’(百分号)本身
m无打印errno值对应的出错内容,(例: printf("%m\n"); )阅读全文
0 0
- printf应用
- printf 应用
- printf的应用脚本
- printf()函数及其应用示例
- shell中printf的应用
- printf ,scanf 的应用和区别
- printf中%p的输出应用
- printf中%p的输出应用
- printf
- printf
- printf
- printf()
- printf
- printf
- printf
- printf
- printf
- Printf
- 接口文档如何写
- 问题
- js设计模式和实践4
- 当一个线程进入一个对象的一个synchronized方法后,其他线程是否可进入此对象的其他方法?
- nginx 隐藏index.php
- printf 应用
- bitset 入门——HDU 5036,HDU 5313,HDU 4920,POJ 2443
- 乱序字符串
- LoadRunner录制手机APP脚本
- python 动态调用模块内的函数
- 静态代码块、构造代码块和构造方法的执行顺序
- 需求实现:点击用户评论列表项,弹出输入法并进行编辑回复功能
- ip子网划分实例
- webpack入口起点