为什么在调用函数时会出现“之前的语法错误”?

时间:2013-09-17 00:15:01

标签: c

我正在尝试调用函数(来自此switch语句)。在我调用函数的每一行上,“Person之前的语法错误”。 Person*是指向“Person”类型结构的指针,它是链表的一部分。我打电话的功能是别人写的;我只是在写一个菜单功能。这个错误是否意味着我传递了错误的参数?

    do{
            switch (input){
                case 'a':
                    add(Person*); //error
                    break;
                case 'd':
                    delete(Person*); //error
                    break;
                case 'v':
                    writelist(Person*); //error
                    break;
                case 's':
                    writefile(Person*, char*); //error
                    break;
                default:
                    printf ("Not a valid input\n");
                    break;
            }

        }while (input != 'q');

1 个答案:

答案 0 :(得分:0)

传递相应类型的实际变量而不是变量类型。我假设你已经为你的结构做了typedef

    //Some code
    Person* p = (Person*)malloc(sizeof(Person))//Some where in the  code
    //May be you want to set the values for the structure members
    char* fileName =  (char*) malloc(20);
    //Scan or set the file name
    //Some code
    do{
        switch (input){
            case 'a':
                add(p);
                break;
            case 'd':
                delete(p);
                break;
            case 'v':
                writelist(p);
                break;
            case 's':
                writefile(p,fileName);
                break;
            default:
                printf ("Not a valid input\n");
                break;
        }

    }while (input != 'q');