作者jai166 (榮耀 尊絕 不凡 台科)
看板C_and_CPP
標題[問題] stdarg v.s. varargs
時間Thu Apr 16 17:38:27 2009
請問一下 小弟編譯 BBS 程式碼時
這程式是舊版的 用了 varargs.h
但 gcc3.4 叫我改用 stdarg.h
請問這兩個的差別是?
還有 看了下程式碼 我發現程式的寫法是這樣子
int func(va_list)
va_dcl
{ ... }
根據
http://gcc.gnu.org/ml/gcc-bugs/1998-11/msg00245.html
他說這是會展開某些程式碼
我記得在 TCPL 說不定數目傳值應該是 int argc, char* argv[],...
不過手邊沒書 沒辦法確定
想問一下這方面有沒有甚麼可以參考的資料
另外 編譯時也出現了錯誤訊息
Old BSD tty API used and depends on COMPAT_43TTY.
Use termios.h instead
請問有沒有甚麼關於tty資料可以參考的呢
我對這方面的程式寫作還不是很清楚
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.143.30.45
※ 編輯: jai166 來自: 220.143.30.45 (04/16 17:43)
1F:→ tinlans:我會建議你改用新的 BBS 程式碼就好,當年因為 GCC 3.4 炸 04/16 20:04
2F:→ tinlans:最慘的其中一類程式就是台灣的 BBS 程式,有趣的是當時某 04/16 20:04
3F:→ tinlans:作者還反嗆誰叫你用這麼新的 GCC XD 04/16 20:04
4F:→ tinlans:varargs.h 一定要丟掉就是了,而且標準規定參數列也不能只 04/16 20:07
5F:→ tinlans:有不定參數而已,你至少要放一個固定參數,就我印象中這類 04/16 20:07
6F:→ tinlans:BBS code 最愛直接 void foo(...) 然後進 GCC 3.4 全炸。 04/16 20:08
7F:→ jai166:XDDD 好像蠻有趣的 不過全部改好也要一些時間研究吧... 04/16 20:24