|
|
|
如何使用不定长参数? 注意:不定长参数需要使用stdarg.h这个头文件。 #include <stdarg.h> #include <stdio.h> void outs(char *fmt, ...)
{
static char tmp[80];
va_list ap;sprintf(tmp, "%s\r\n", fmt); va_start(ap, fmt); vprintf(tmp, ap); va_end(ap); }; void foo(char *fmt, ...)
{
va_list ap;
int d;
char c, *p, *s;
va_start(ap, fmt);
while (*fmt)
switch(*fmt++) {
case 's': /* string */
s = va_arg(ap, char *);
printf("string %s\n", s);
break;
case 'd': /* int */
d = va_arg(ap, int);
printf("int %d\n", d);
break;
case 'c': /* char */
/* need a cast here since va_arg only
takes fully promoted types */
c = (char) va_arg(ap, int);
printf("char %c\n", c);
break;
}
va_end(ap);
}
void main() { outs("Hello, %s", username); foo("sdc", username, usercount, 'A');}; |