Sam*_*m H 5 c printf arguments function
这是我尝试过的......但失败了:
void testfunc(...){
printf(...);
}
Run Code Online (Sandbox Code Playgroud)
您必须使用va_start()、va_end()、va_arg()和 (并非总是)va_list并且您必须至少有一个常量定义的参数!例如:
#include <stdio.h>
#include <stdarg.h>
void PrintFloats ( int amount, ...)
{
int i;
double val;
printf ("Floats passed: ");
va_list vl;
va_start(vl,amount);
for (i=0;i<amount;i++)
{
val=va_arg(vl,double);
printf ("\t%.2f",val);
}
va_end(vl);
printf ("\n");
}
int main ()
{
PrintFloats (3,3.14159,2.71828,1.41421);
return 0;
}
Run Code Online (Sandbox Code Playgroud)