标题:请教下下面C程序的错误
只看楼主
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
结帖率:100%
已结贴  问题点数:20 回复次数:17 
请教下下面C程序的错误
代码段如下:  gcc 编译报错:vprintf.c: In function ‘tprintf’:  vprintf.c:20: error: expected ‘;’ before ‘{’ token
               错误很简单,少个分号, 问题是我觉得不应该有这个错误,  压根不知道  “;”该加在哪?  
#include<stdio.h>
#include<stdarg.h>
#include<string.h>

void tprintf(const char*format,...)
{
        va_list ap;
        int i;
        va_start(ap,format);
        if(format==NULL)printf("Defined error!");
        for(i=0;i<strlen(format);i++)
        which(*(format+i))
          {
            case 'd':printf("%d\n",va_arg(ap,int));break;
            case 'c':printf("%c\n",va_arg(ap,char));break;
            case 's':printf("%s\n",va_arg(ap,char));break;
            case 'f':printf("%f\n",va_arg(ap,float));break;
            default:printf("%s\n",format);break;
          }
        va_end(ap);
}

int main()
{
        char a[]="cds";
        tprintf(a,'r',14,"zou");
        printf("%c%d%s\n",'r',14,"zou");
        return 0;
}
搜索更多相关主题的帖子: function expected include before 
2013-07-27 22:07
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
得分:0 
注释代码我删掉了些,所以不再是第20行,不好意思。   错误点在: switch这里,gcc 提示这少个分号,有点莫名其妙啊!
2013-07-27 22:09
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
得分:0 
  怎么没朋友帮忙解答下子~~~~~~~~~~~
2013-07-27 22:42
qq525273446
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:54
专家分:161
注 册:2009-11-18
得分:0 
void tprintf(const char*format,...)
加……是什么意思?

找工作中……
2013-07-27 22:52
qq525273446
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:54
专家分:161
注 册:2009-11-18
得分:0 
变长参数函数的第一个参数是 后边参数的个数吧

找工作中……
2013-07-27 22:56
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
得分:0 
回复 4楼 qq525273446
这个是可变参函数,这个可以不用管的,问题点是在: gcc报错说 switch 的{ 前少个分号,这个是我奇怪的地方,而且也不知道该如何解决!
2013-07-27 22:56
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
得分:0 
回复 5楼 qq525273446
不明白你的意思哈
2013-07-27 22:58
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
得分:0 
回复 5楼 qq525273446
变参函数的第一个参数是固定参数, char *,个数是不限定的,不然怎么叫变参咯!
2013-07-27 23:00
qq525273446
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:54
专家分:161
注 册:2009-11-18
得分:0 
哦   不好意思  我错了   当我没说啊

找工作中……
2013-07-27 23:02
qq525273446
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:54
专家分:161
注 册:2009-11-18
得分:15 
你把switch  写错了

找工作中……
2013-07-27 23:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-418076-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.451146 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved