Re: [問題] 不用sprintf的寫法
→
01/16 23:56,
01/16 23:56
→
01/16 23:57,
01/16 23:57
→
01/16 23:57,
01/16 23:57
→
01/16 23:57,
01/16 23:57
↑ 我也推 l 大
推
01/17 00:07,
01/17 00:07
→
01/17 00:09,
01/17 00:09
→
01/17 00:10,
01/17 00:10
推
01/17 00:19,
01/17 00:19
→
01/17 00:19,
01/17 00:19
--------------------------------------------------
Primer 4e 7.2.7 (p244)
void foo(param_list, ...);
「此函式被呼叫時可能有零個或多個引數,且引數型別未知」
-------------------------------------------------------
就小弟對於 va_list 淺薄研究,
所有終止進行運算大致上只有二種方式,
一種是如 Primer 所說,一開始就明確給參數數量,
不過要這麼做的話幹嘛還要用 va_list ? 塞 array 不就好了?
另一方法是設定終止值,數字的話可以最後給 0(例子常用-1) 當做結束,
提醒的是,va 系列是 macro,不是函式,下述連結可參考
http://ehome.hifly.to/showthread.php?s=&threadid=329
----------------------------------------------------------
另 loveme 所指出的 「危險」,其實並不只是有沒有基本 sence ,
而是真的很危險,特別是在自動轉型的時候,(像是 double 引數傳入 int 參數)
以下程式碼可供參考,注意第四次呼叫副函式時結果會是錯的
http://nopaste.csie.org/0702b
可能我還感受不到它的好處,所以小弟也是覺得少用 va_list
之前用 va 寫的也全都改回來
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.76.142
推
01/17 01:28, , 1F
01/17 01:28, 1F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章