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 + -
显示快捷键?