可变参数应用

#include <stdio.h>
#include <stdarg.h>

void foo(char *fmt, ...)
{
	va_list ap;
	int d;
	char c, *s;

	va_start(ap, fmt);
	while (*fmt)
		switch(*fmt++)
		{
			case 's': /* 字符串 */
				s = va_arg(ap, char *);
				printf("string %s\n", s);
				break;
			case 'd': /* 整数 */
				d = va_arg(ap, int);
				printf("int %d\n", d);
				break;
			case 'c': //字符
				c = va_arg(ap, char);
				printf("char %c\n", c);
				break;
		}
	va_end(ap);
} 

你可能感兴趣的:(可变参数应用)