今天在看Linux下C的代码,发现一段感觉很不合情理的代码
void dump_msg(const char *fmt, ...) { va_list ap; va_start(ap, fmt); if (dump_file){ vfprintf(dump_file, fmt, ap); } va_end(ap); }
注:dump_file 全局变量
参数中的"..."我从来没见过,让我很是惊奇,这也能编译通过?算是我孤陋寡闻了,惭愧呀~~~
不过从代码中大概也可以理解
"..."中传过来的值应该是保存在va_list这个列表中了
查了下文档,一下就清晰很多了,其实这个我们经常用到
就是:int printf(const char* format , ...)
你懂的,我就不说了。