形参太多怎么办?

[复制链接]
3349|6
 楼主| 兰天白云 发表于 2007-6-7 09:05 | 显示全部楼层 |阅读模式
在函数声明时:<br />void&nbsp;display(unsigned&nbsp;int&nbsp;pv,unsigned&nbsp;int&nbsp;sv,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;led1,unsigned&nbsp;char&nbsp;led2,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;led3<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />本人觉的很难看,有更好的主意吗?<br /><br />在函数定义时倒好办<br />1:新写法<br />void&nbsp;display(unsigned&nbsp;int&nbsp;pv,unsigned&nbsp;int&nbsp;sv,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;led1,unsigned&nbsp;char&nbsp;led2,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;led3<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />{...<br />&nbsp;...<br />}<br />2:老写法<br />void&nbsp;display(pv,sv,led1,led2,led3)<br />unsigned&nbsp;int&nbsp;pv,sv;<br />unsinged&nbsp;char&nbsp;led1,led2,led3;<br />{...<br />&nbsp;...<br />}
soso 发表于 2007-6-7 09:39 | 显示全部楼层

喜欢用struct么?

  
yewuyi 发表于 2007-6-7 10:43 | 显示全部楼层

这样写通不过吗?

unsigned&nbsp;int&nbsp;pv,unsigned&nbsp;int&nbsp;sv,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;led1,unsigned&nbsp;char&nbsp;led2,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;led3<br /><br />::<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;&nbsp;&nbsp;uint<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;uchar<br /><br />uint&nbsp;pv,uint&nbsp;sv,uchar&nbsp;led1,uchar&nbsp;led2,uchar&nbsp;led3<br /><br />或者定义一个宏,LS说的结构怎么定义,俺也没用过&nbsp;&nbsp;&nbsp;&nbsp;
soso 发表于 2007-6-7 13:29 | 显示全部楼层

仔细看看,你这个有点像将LED code显示在某地址

&nbsp;void&nbsp;display(unisgned&nbsp;int&nbsp;x,unsigned&nbsp;int&nbsp;y,unsigned&nbsp;char&nbsp;*&nbsp;led),不讲究好看,讲究效率还是*好。c带有很多参数不难看。你去看verilog&nbsp;HDL代码后就不这么说了。如果你的参数很复杂而结构相似,那就还是struct耐用。
anjylau 发表于 2007-6-7 16:05 | 显示全部楼层

可以试试呀

采用结构或联合呀,
 楼主| 兰天白云 发表于 2007-6-9 10:01 | 显示全部楼层

采用结构或联合

那就不是形参了呀
anjylau 发表于 2007-6-9 15:17 | 显示全部楼层

写法

那就只有用你的第一种新写法呀,我是采用的第一种新写法写的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

115

主题

2961

帖子

7

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