样例代码如下: #include <stdio.h> #include <stdarg.h> // gcc -o arg stdarg.c void Print(const char *fmt, ...) { char text[256]; // 保存字符串 va_list ap; // 指向一个变量列表的指针 if (fmt == NULL) return; va_start(ap, fmt); // 分析可变参数 vsprintf(text, fmt, ap); // 把参数值写入字符串 va_end(ap); printf("%s", text); // 打印字符串 } int main() { int a = 100; char *b = "abc"; double c = 123.0; Print("xiaoshe:/n"); Print("%d %s %.6f/n", a, b, c); return 0; } 在linux下编译:gcc -o arg stdarg.c,运行:./arg 结果输出为: xiaoshe: 100 abc 123.000000 (在VC++下同样可以编译运行)