[問題] 參數會變

作者: 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