[ZLG-ARM] 一个函数所引申出的问题

[复制链接]
1791|3
 楼主| silentband 发表于 2008-4-1 22:39 | 显示全部楼层 |阅读模式
由于需要给LCD送显调试,特地写了一个字节数转ASCII的函数,请大家过目,看看有没有需要改进的地方~<br />void&nbsp;UintToASC(uint8&nbsp;data,uint8*&nbsp;dest)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;data;<br />&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;(temp&nbsp;&gt&gt4)&0x0F;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(9&gt=temp)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest[0]&nbsp;=&nbsp;temp&nbsp;+&nbsp;0x30;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest[0]&nbsp;=&nbsp;(temp-10)&nbsp;+&nbsp;'A';<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;data;<br />&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;temp&nbsp;&&nbsp;0x0F;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;(9&gt=temp)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest[1]&nbsp;=&nbsp;temp&nbsp;+&nbsp;0x30;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest[1]&nbsp;=&nbsp;(temp-10)&nbsp;+&nbsp;'A';<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />由此引发了一个思考,keil&nbsp;for&nbsp;arm里没有可供调用的函数吗?周工的资料里没有讲到我们可以使用的数学函数库一类的,很是不方便呀~
 楼主| silentband 发表于 2008-4-1 23:13 | 显示全部楼层

又写了一个,编译后提示警告

uint8&nbsp;*UintToASC(int&nbsp;i)<br />{<br />&nbsp;&nbsp;char&nbsp;buf[100],temp;<br />&nbsp;&nbsp;int8&nbsp;index=0,j,len;<br />&nbsp;&nbsp;if(i&lt0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf[index]='-';<br />&nbsp;&nbsp;while(i/10)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;buf[++index]=i%10+'0';<br />&nbsp;&nbsp;&nbsp;&nbsp;i/=10;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;buf[++index]='\0';<br />&nbsp;&nbsp;len=strlen(buf);<br />&nbsp;&nbsp;for(j=0;j&ltlen/2;j++)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;temp=buf[j];<br />&nbsp;&nbsp;&nbsp;&nbsp;buf[j]=buf[len-j];<br />&nbsp;&nbsp;&nbsp;&nbsp;buf[len-j]=temp;<br />&nbsp;&nbsp;}<br />return&nbsp;buf;<br />}&nbsp;&nbsp;<br />
王紫豪 发表于 2008-4-1 23:28 | 显示全部楼层

sprintf

  
王紫豪 发表于 2008-4-1 23:33 | 显示全部楼层

关于标准库的看法

1.学习&nbsp;C&nbsp;最好要牢记系统标准库;<br /><br />2.由于标准库需要考虑到很多问题,它的效率肯定没有自己写来得快;但是我还是推荐大家用,最好不要自己写,特别是新手,原因请看第三条;<br /><br />3.自己写的算法没有标准库健全,容易出bug,哈哈!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

272

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部