请飞锐泰克的工程师帮忙解释一下这两句程序,可以吗?

[复制链接]
 楼主| sdnr 发表于 2007-10-22 21:25 | 显示全部楼层 |阅读模式
void*&nbsp;get_empty_cmd_buf(Command_Buf&nbsp;*cmdbuf)<br />{<br />&nbsp;&nbsp;return&nbsp;(void&nbsp;*)&nbsp;&(cmdbuf-&gtmsgbuf[cmdbuf-&gtwrite_cmd]);<br />}<br />谢谢
ayb_ice 发表于 2007-10-23 08:08 | 显示全部楼层

这是C的基本的东西。。。

  
 楼主| sdnr 发表于 2007-10-23 10:03 | 显示全部楼层

单片机里这样做的好处是什么呢

这个我知道,但是单片机里这样做是不是更好的啊?
ayb_ice 发表于 2007-10-23 10:36 | 显示全部楼层

随便说说

不存在什么好不好,单片机用浮点数好不好。。。<br />有时需要这样用。。。
 楼主| sdnr 发表于 2007-10-23 11:04 | 显示全部楼层

还是不太明白

这个程序是一个例程里面的,它的功能完全可以有别的实现方法,对吧?就是不理解在单片机里这样的写法是否会提高编译效率或者执行效率?
FREE_TECH 发表于 2007-10-23 15:01 | 显示全部楼层

用指针操作可以节省RAM

void*&nbsp;get_empty_cmd_buf(Command_Buf&nbsp;*cmdbuf)<br />{<br />&nbsp;&nbsp;return&nbsp;(void&nbsp;*)&nbsp;&(cmdbuf-&gtmsgbuf[cmdbuf-&gtwrite_cmd]);<br />}<br />主要为了移植方便,<br />一个返回指针的函数,还要看Command_Buf&nbsp;的类型
 楼主| sdnr 发表于 2007-10-23 15:53 | 显示全部楼层

可否再详细一些

谢谢楼上指引,还是不很明白,可否详细一下呢?返回值应该是“cmdbuf-&gtmsgbuf[cmdbuf-&gtwrite_cmd])”对应的指针吗?
freetech_t 发表于 2007-10-23 16:48 | 显示全部楼层

建议大家看看MISR-C

return&nbsp;(void&nbsp;*)&nbsp;&(cmdbuf-&gtmsgbuf[cmdbuf-&gtwrite_cmd]);<br /><br />cmdbuf是一个指向Command_Buf型的指针变量;该Command_Buf型有自己的数据结构,方便的话请将Command_Buf数据结构粘贴出来。<br />&取地址符:&(cmdbuf-&gtmsgbuf[cmdbuf-&gtwrite_cmd])的运算结果是一个地址。也就是你理解的“cmdbuf-&gtmsgbuf[cmdbuf-&gtwrite_cmd])”对应的指针
 楼主| sdnr 发表于 2007-10-23 19:19 | 显示全部楼层

谢谢了

楼上大侠少打了一个A,应该是MISRA&nbsp;-C,发一个网址:http://www.xgdown.com/article/236/32263_1.htm<br />看后获益匪浅,发现有几条规则与普通的C语言要求差异很大。<br /><br />感谢楼上大侠给我指路
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

11

帖子

1

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

3

主题

11

帖子

1

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