[问题] 参数会变

楼主: GooLoo (平凡)   2016-12-05 15:05:24
请问一下
void test (int a,int b){
e=a+b
}
夸号ab 这样写可以代两个参数进去,
今天使用者输入a b c可能就不能用了,
不晓得有没有写法可以解决这问题
常遇到这问题,如我SPI要输出一对资料,
我建一个test(char a),但10笔呢?
作者: uranusjr (←這人是超級笨蛋)   2016-12-05 15:08:00
可以用 varargs 但你还是得想个方法知道总共有几个
作者: CoNsTaR ((const *))   2016-12-05 15:14:00
你可以做资料结构啊兄弟,type 一样的话也有 array 可以用啊
作者: Schottky (顺风相送)   2016-12-05 15:34:00
变动参数不如array方便非要这样干就照一楼说的吧一般我只会在仿制printf风格时会用varargs
作者: Yshuan (倚絃)   2016-12-05 15:57:00
如果就只有a,b和a,b,c的话 直接overloading就好
作者: Caesar08 (Caesar)   2016-12-05 16:40:00
parameter pack?
作者: uranusjr (←這人是超級笨蛋)   2016-12-05 16:40:00
他下面又举了一个十笔的例子我觉得 overloading 不是解虽然也是有人这样搞啦, Qt 就常搞这种只有参数数量不一样的重载, 然后一次就十个...
作者: pttworld (批踢踢世界)   2016-12-05 17:11:00
需要STL的容器,一定知道size,函式内处理。
作者: pili100 (zelda)   2016-12-05 17:58:00
推一F,用varargs
作者: chuegou (chuegou)   2016-12-05 19:09:00
使用者输入abc?意思是你这个function的实作不想给人看到吗?
作者: firejox (Tangent)   2016-12-06 00:21:00
用macro啊
作者: MOONRAKER (㊣牛鹤鳗毛人)   2016-12-06 10:39:00
(1)到底是谁要使用。(2)array卡实在。
作者: hunandy14 (Charlott.HonG)   2016-12-06 14:48:00
阿 是上次会唱歌的月亮
作者: MOONRAKER (㊣牛鹤鳗毛人)   2016-12-14 11:00:00
不是 那是幻觉

Links booklink

Contact Us: admin [ a t ] ucptt.com