一种实现简单易移植的格式化输出函功能的方法.pdf

上传人:大师****2 文档编号:4750972 上传时间:2018-11-05 格式:PDF 页数:4 大小:761.39KB
返回 下载 相关 举报
摘要
申请专利号:

CN201210393217.4

申请日:

2012.10.16

公开号:

CN102937894A

公开日:

2013.02.20

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 9/44申请公布日:20130220|||实质审查的生效IPC(主分类):G06F 9/44申请日:20121016|||公开

IPC分类号:

G06F9/44

主分类号:

G06F9/44

申请人:

国电南京自动化股份有限公司

发明人:

姚艳松; 郭立煌; 周建波; 雍太利; 朱学海; 陈靖公; 王程谦

地址:

210009 江苏省南京市鼓楼区新模范马路38号

优先权:

专利代理机构:

南京纵横知识产权代理有限公司 32224

代理人:

董建林

PDF下载: PDF下载
内容摘要

本发明公开了一种实现简单易移植的格式化输出函功能的方法,包括如下步骤:(1)在堆栈定义一个N字节的发送缓冲区print_buf;(2)通过库函数sprintf函数将需要格式化的内容输出到缓冲区print_buf内;(3)通过发送字符串的函数sendString函数输出缓冲区print_buf内的数据。本发明提供的一种实现简单易移植的格式化输出函功能的方法,使用宏定义功能,利用现有系统库函数sprintf,非常简单的实现了printf功能,实践表明,该方法可以兼容printf的功能,并且易于移植。

权利要求书

权利要求书一种实现简单易移植的格式化输出函功能的方法,其特征在于:包括如下步骤:
(1)在堆栈定义一个N字节的发送缓冲区print_buf;
(2)通过库函数sprintf函数将需要格式化的内容输出到缓冲区print_buf内;
(3)通过发送字符串的函数sendString函数输出缓冲区print_buf内的数据。
根据权利要求1所述的实现简单易移植的格式化输出函功能的方法,其特征在于:所述N=1024。

说明书

说明书一种实现简单易移植的格式化输出函功能的方法
技术领域
本发明涉及计算机系统开发方法,尤其涉及一种实现简单易移植的格式化输出函功能的方法。
背景技术
格式化输出函数(printf函数)是计算机系统尤其是嵌入式系统开发过程中最常用、也是最重要的库函数之一,printf函数用于向控制台(屏幕、串口、telnet端口或JTAG调试终端)打印信息,是系统调试过程中最常用的库函数之一。
printf函数的原型为int printf(char*format,[argument…]),其中format为用户指定的格式,argument为不固定数量的变量,argument为整数、浮点数、字符串等类型。
printf函数用于输出调试信息,便于调试者查看系统运行信息,在嵌入式系统开发或移植过程中,printf函数通常使用系统内置函数,系统内置的printf函数通常会打印到系统默认的输出控制台,如果调试者希望输出的其他输出控制台,往往需要函数重定向或移植其他功能的格式化输出函数,这样会存在如下问题:
(1)不同平台或同一平台不同调试软件函数重定向规则不一致,甚至不提供函数重定向功能,导致移植困难;
(2)如果自己实现printf函数功能,往往只能实现比较简单的格式化输出功能,如只能支持打印整数、字符串,不支持长整形、浮点数,函数的名称不能为printf,只能改为其他名字,同样会导致系统移植困难。
综上所述,printf函数在嵌入式系统调试中经常会导致移植繁琐,开发困难等问题。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种实现简单易移植的格式化输出函功能的方法,利用宏定义以及现有的系统库函数sprintf函数,
技术方案:为实现上述目的,本发明采用的技术方案为:
一种实现简单易移植的格式化输出函功能的方法,包括如下步骤:
(1)在堆栈定义一个N字节的发送缓冲区print_buf;
(2)通过库函数sprintf函数将需要格式化的内容输出到缓冲区print_buf内;
(3)通过发送字符串的函数sendString函数输出缓冲区print_buf内的数据。
优选的,所述缓冲区print_buf的大小可以根据需要进行调整,一般可以设计为1024字节,即N=1024。
上述方法中,sprintf函数的原型是int sprintf(char*buffer,const char*format,[argument]…),其中buffer是存放格式化字符串的缓冲区,format为用户指定的格式,argument为不固定数量的变量,argument为整数、浮点数、字符串等类型;sendString函数是系统发送字符串的函数,可以由开发者自定义。该方法进行了一次宏定义,使用时将该宏定义放置在一个库文件中,使源文件中包含该库文件即可。
有益效果:本发明提供的一种实现简单易移植的格式化输出函功能的方法,使用宏定义功能,利用现有系统库函数sprintf,非常简单的实现了printf功能,实践表明,该方法可以兼容printf的功能,并且易于移植。
具体实施方式
下面结合实例对本发明作更进一步的说明。
一种实现简单易移植的格式化输出函功能的方法,包括如下步骤:
(1)在堆栈定义一个1024字节的发送缓冲区print_buf;
(2)通过库函数sprintf函数将需要格式化的内容输出到缓冲区print_buf内;
(3)通过发送字符串的函数sendString函数输出缓冲区print_buf内的数据。
可以通过下面的程序语言实现上述方法:

上述程序语言巧妙利用do while(0)结构、系统库函数sprintf函数、宏定义功能、可变参数宏(…)、宏定义中的__VA_ARGS__关键字,实现了printf全部功能,在实际使用中,可以非常方便的进行系统移植和调试。
比如系统调用printf如下:

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

一种实现简单易移植的格式化输出函功能的方法.pdf_第1页
第1页 / 共4页
一种实现简单易移植的格式化输出函功能的方法.pdf_第2页
第2页 / 共4页
一种实现简单易移植的格式化输出函功能的方法.pdf_第3页
第3页 / 共4页
点击查看更多>>
资源描述

《一种实现简单易移植的格式化输出函功能的方法.pdf》由会员分享,可在线阅读,更多相关《一种实现简单易移植的格式化输出函功能的方法.pdf(4页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102937894 A (43)申请公布日 2013.02.20 CN 102937894 A *CN102937894A* (21)申请号 201210393217.4 (22)申请日 2012.10.16 G06F 9/44(2006.01) (71)申请人 国电南京自动化股份有限公司 地址 210009 江苏省南京市鼓楼区新模范马 路 38 号 (72)发明人 姚艳松 郭立煌 周建波 雍太利 朱学海 陈靖公 王程谦 (74)专利代理机构 南京纵横知识产权代理有限 公司 32224 代理人 董建林 (54) 发明名称 一种实现简单易移植的格式化输出函功能的 方法 。

2、(57) 摘要 本发明公开了一种实现简单易移植的格式化 输出函功能的方法, 包括如下步骤 :(1) 在堆栈定 义一个 N 字节的发送缓冲区 print_buf ;(2) 通过 库函数 sprintf 函数将需要格式化的内容输出到 缓冲区 print_buf 内 ;(3)通过发送字符串的函 数sendString函数输出缓冲区print_buf内的数 据。本发明提供的一种实现简单易移植的格式化 输出函功能的方法, 使用宏定义功能, 利用现有系 统库函数 sprintf, 非常简单的实现了 printf 功 能, 实践表明, 该方法可以兼容 printf 的功能, 并 且易于移植。 (51)Int。

3、.Cl. 权利要求书 1 页 说明书 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 2 页 1/1 页 2 1. 一种实现简单易移植的格式化输出函功能的方法, 其特征在于 : 包括如下步骤 : (1) 在堆栈定义一个 N 字节的发送缓冲区 print_buf ; (2) 通过库函数 sprintf 函数将需要格式化的内容输出到缓冲区 print_buf 内 ; (3) 通过发送字符串的函数 sendString 函数输出缓冲区 print_buf 内的数据。 2. 根据权利要求 1 所述的实现简单易移植的格式化输出函功能的方法, 其特征在于 :。

4、 所述 N=1024。 权 利 要 求 书 CN 102937894 A 2 1/2 页 3 一种实现简单易移植的格式化输出函功能的方法 技术领域 0001 本发明涉及计算机系统开发方法, 尤其涉及一种实现简单易移植的格式化输出函 功能的方法。 背景技术 0002 格式化输出函数 (printf 函数) 是计算机系统尤其是嵌入式系统开发过程中最常 用、 也是最重要的库函数之一, printf 函数用于向控制台 (屏幕、 串口、 telnet 端口或 JTAG 调试终端) 打印信息, 是系统调试过程中最常用的库函数之一。 0003 printf 函数的原型为 int printf(char*fo。

5、rmat,argument), 其中 format 为 用户指定的格式, argument 为不固定数量的变量, argument 为整数、 浮点数、 字符串等类 型。 0004 printf 函数用于输出调试信息, 便于调试者查看系统运行信息, 在嵌入式系统开 发或移植过程中, printf 函数通常使用系统内置函数, 系统内置的 printf 函数通常会打印 到系统默认的输出控制台, 如果调试者希望输出的其他输出控制台, 往往需要函数重定向 或移植其他功能的格式化输出函数, 这样会存在如下问题 : 0005 (1) 不同平台或同一平台不同调试软件函数重定向规则不一致, 甚至不提供函数 重定。

6、向功能, 导致移植困难 ; 0006 (2) 如果自己实现 printf 函数功能, 往往只能实现比较简单的格式化输出功能, 如只能支持打印整数、 字符串, 不支持长整形、 浮点数, 函数的名称不能为 printf, 只能改为 其他名字, 同样会导致系统移植困难。 0007 综上所述, printf 函数在嵌入式系统调试中经常会导致移植繁琐, 开发困难等问 题。 发明内容 0008 发明目的 : 为了克服现有技术中存在的不足, 本发明提供一种实现简单易移植的 格式化输出函功能的方法, 利用宏定义以及现有的系统库函数 sprintf 函数, 0009 技术方案 : 为实现上述目的, 本发明采用的。

7、技术方案为 : 0010 一种实现简单易移植的格式化输出函功能的方法, 包括如下步骤 : 0011 (1) 在堆栈定义一个 N 字节的发送缓冲区 print_buf ; 0012 (2) 通过库函数 sprintf 函数将需要格式化的内容输出到缓冲区 print_buf 内 ; 0013 (3) 通过发送字符串的函数 sendString 函数输出缓冲区 print_buf 内的数据。 0014 优选的, 所述缓冲区 print_buf 的大小可以根据需要进行调整, 一般可以设计为 1024 字节, 即 N=1024。 0015 上 述 方 法 中, sprintf 函 数 的 原 型 是 i。

8、nt sprintf(char*buffer,const char*format,argument), 其中 buffer 是存放格式化字符串的缓冲区, format 为用 户指定的格式, argument 为不固定数量的变量, argument 为整数、 浮点数、 字符串等类型 ; 说 明 书 CN 102937894 A 3 2/2 页 4 sendString 函数是系统发送字符串的函数, 可以由开发者自定义。该方法进行了一次宏定 义, 使用时将该宏定义放置在一个库文件中, 使源文件中包含该库文件即可。 0016 有益效果 : 本发明提供的一种实现简单易移植的格式化输出函功能的方法, 使。

9、用 宏定义功能, 利用现有系统库函数 sprintf, 非常简单的实现了 printf 功能, 实践表明, 该 方法可以兼容 printf 的功能, 并且易于移植。 具体实施方式 0017 下面结合实例对本发明作更进一步的说明。 0018 一种实现简单易移植的格式化输出函功能的方法, 包括如下步骤 : 0019 (1) 在堆栈定义一个 1024 字节的发送缓冲区 print_buf ; 0020 (2) 通过库函数 sprintf 函数将需要格式化的内容输出到缓冲区 print_buf 内 ; 0021 (3) 通过发送字符串的函数 sendString 函数输出缓冲区 print_buf 内。

10、的数据。 0022 可以通过下面的程序语言实现上述方法 : 0023 0024 上述程序语言巧妙利用 do while(0) 结构、 系统库函数 sprintf 函数、 宏定义功 能、 可变参数宏 ()、 宏定义中的 _VA_ARGS_ 关键字, 实现了 printf 全部功能, 在实际使 用中, 可以非常方便的进行系统移植和调试。 0025 比如系统调用 printf 如下 : 0026 0027 以上所述仅是本发明的优选实施方式, 应当指出 : 对于本技术领域的普通技术人 员来说, 在不脱离本发明原理的前提下, 还可以做出若干改进和润饰, 这些改进和润饰也应 视为本发明的保护范围。 说 明 书 CN 102937894 A 4 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1