C/C++ 不定參數

void DebugPrint( const char *format, ... )
{
 va_list arglist;
 va_start(arglist, format);


 if (log_stream)
  vfprintf(log_stream, format, arglist);


 va_end(arglist);
 va_start(arglist, format);


 vprintf(format, arglist);


 va_end(arglist);
}


以上是在 VC 2005 中使用的不定參數用法。比較需要注意的就是要使用 vfprintf/vprintf 來達到一般直接呼叫 fprintf/printf 的功用。


log_stream 則是 FILE * 物件。裡頭只是確認它有值才能呼叫 vfprintf 以免出現 segmentation fault。


留言

熱門文章