资源简介
通过可变参数函数实现printf()函数功能,可将其应用于单片机,ARM裸机等的串口输出中去,并且新增了[%b:实现二进制输出,原来printf函数不能实现的功能]。也可将其使用的液晶的字符类驱动中去。
代码片段和文件信息
#include
#include
/*
可变参数实现printf
使用putchar()函数作为输出
思路:
通过遍历固定参数format从中提取出,可变参数类型
然后使用putchar()函数输出对应参数值
*/
/*
@ 使用递归用putchar()函数输出整数
@ 在函数void printf_demo4(const char *format ...)中调用
*/
void printf_int(int tmp)
{
if (tmp > 9)
{
printf_int(tmp / 10);
}
putchar(tmp % 10 + ‘0‘);
}
/*
@实现功能,输入十进制或者十六进制可以打印出二进制数据
@通过位操作,当高位不为0时开始进行输出
*/
void printf_binary(int tmp)
{
char flag = 0;
int ret = 0;
char tmp_sizeof = sizeof(tmp);//先判断出输入数据是几位数据
for (int i = 0; i < tmp_sizeof * 8; i++)
{
if (tmp_sizeof == 4)
{
ret = 0x80000000 & tmp;
if (ret != 0)
{
putchar(1 + ‘0‘);
flag = 1;
}
else if ((flag == 1) && !ret)
{
putchar(0 + ‘0‘);
}
tmp <<= 1;
}
else if (tmp_sizeof == 2)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4426 2018-05-07 14:50 my_printf\my_printf.c
文件 1146 2018-05-07 14:53 my_printf\my_printf.h
目录 0 2018-05-07 14:54 my_printf
----------- --------- ---------- ----- ----
5572 3
- 上一篇:指示灯闪烁labview
- 下一篇:微机原理模拟计算器设计课程设计
评论
共有 条评论