tvsprintf.c
来自「单片及c语言轻松入门的随书光盘」· C语言 代码 · 共 36 行
C
36 行
#include <reg52.h>
#include <stdio.h>
#include <stdarg.h>
xdata char etxt[30]; /* 开辟30字节的字符缓冲区*/
void error (char *fmt, ...) {
va_list arg_ptr;
va_start (arg_ptr, fmt); /* 格式化字符 */
vsprintf (etxt, fmt, arg_ptr);
va_end (arg_ptr);
}
void tst_vprintf (void) {
int i;
i = 1000;
/* 使用一个参数来调用error函数*/
error ("Error: '%d' number too large\n", i);
/*仅用一个格式化的字符串来调用error函数*/
error ("Syntax Error\n");
}
void main()
{
SCON = 0x50; /*SCON:工作模式1,8-bit UART,允许接收*/
TMOD |= 0x20; /*TMOD:定时器T1,工作模式2, 8位自动重载方式*/
TH1 = 0xf3; /*当波特率为2400时,定时器初值*/
TR1 = 1; /*定时器T1开始运行*/
TI = 1; /*允许发送数据*/
for(;;)
tst_vprintf();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?