‘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);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...