如何解决‘va_list’之前的预期表达
这些错误是什么意思?
我试图构建一个简单的 _printf 函数,但是在尝试传递这个 va_list 时我遇到了一些表达式错误。
main.c:在函数‘_printf’中:
main.c:101:28: 错误:'va_list' 之前的预期表达式 count = _mySwit(c,va_list args,count);
main.c:101:17: 错误:函数‘_mySwit’的参数太少 count = _mySwit(c,count);
main.c:60:5: 注意:这里声明 int _mySwit(char letter,va_list pargs,int cou)
########################################### ##########################
{
char leter,*str;
int i = 0;
switch (letter)
{
case 'c':
leter = (char) va_arg(pargs,int);
_putchar(leter);
cou++;
break;
case 's':
str = va_arg(pargs,char *);
while(str[i] != '\0')
{
_putchar(str[i]);
cou++; }
i = 0;
break;
default:
break;
}
return (cou);
}
char _printf(char *format,...)
{
va_list args;
char *string,*inStr;
int inarg,count;
va_start(args,format);
if (*format == '%')
{
char c = *format++;
count = _mySwit(c,va_list args,count);
*format++; }
else
_putchar(*format);
count++;
return (count);
}```
##################################################################
解决方法
当传递 va_list 时,输入 count = _mySwit(c,args,count);
这样可以代替。 count = _mySwit(c,va_list args,count);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。