void print(char a, ...)
{
va_list argp;
va_start(argp, a);
int argvalue = a;
do
{
putchar(argvalue);
argvalue = va_arg(argp, char*);
} while (argvalue != "\0");
va_end(argp);
}
void main()
{
print("12345");
}
void print(char a, ...)
{
va_list argp;
va_start(argp, a);
int argvalue = a;
do
{
putchar(argvalue);
argvalue = va_arg(argp, char*);
} while (argvalue != "\0");
va_end(argp);
}
void main()
{
print("12345");
}
兄弟,你这个“12345”是一个参数,传了一个指针,所以你va_arg找不到下一个参数啊。还有你写的有太多不规范的地方。
1.要么你把“12345”改成,‘1’,‘2’,‘3’,‘4’,‘5’
2.要么直接用第一个参数输出,详见下面代码
void print(const char* a, ...)
{
va_list argp;
va_start(argp, a);
int argvalue = *a;
do
{
putchar(argvalue);
argvalue = *(++a);
//argvalue = va_arg(argp, char*);
} while (argvalue != '\0');
va_end(argp);
}
void main()
{
print("12345");
}