c - '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, va_list args, 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);
推荐阅读
- regex - 正则表达式 AND(用于在 intelliJ 中搜索代码)
- highcharts - 在 Highcharts 中设置标签和图表之间的距离
- c# - 在用户计算机上单击按钮时将 dataGridView 数据导出到 Excel,引发系统级异常
- c - malloc() 变成一个修改字符串的递归函数
- linux - 在同一管道中使用 Awk、Cut 和 sed?
- apache-flink - Apache Flink 能否通过 Table-API/SQL 中的内置连接器实现端到端的精确一次?
- c - C语言文本文件转换成结构数组
- python - 我有问题增加我的 x 轴标签之间的空间并增加它的大小
- python - 使用递归序列
- android - 如何在 RecyclerView 中创建一个空视图?