试图理解undcl是如何工作的(来自K& R书 - 第5-12章复杂的声明)

时间:2013-06-22 21:53:20

标签: c

我对undcl如何工作感到困惑。这是K& R书中给出的代码

....
int main()
{
    int type;
    char temp[MAXTOKEN];

    while(gettoken() != EOF) {
        strcpy(out, token);
        while((type = gettoken()) != '\n')
        if(type == PARENS || type == BRACKETS)
            strcat(out, token);
        else if (type == '*') {
            sprintf(temp, "(*%s)",out);
            strcpy(out, temp);
        } else if (type == NAME) {
            sprintf(temp, "%s %s", token, out);
            strcpy(out, temp);
        } else
            printf("invalid input at %s\n",token);
}
    return 0;
}
....

我想在这里输入什么? 我尝试在输入中输入单词到单词声明,但它似乎不起作用

示例我运行程序并输入:

argv:指向char的指针

并且它只显示'argv错误输入'错误

1 个答案:

答案 0 :(得分:1)

本书为您提供了一个示例,它将在代码上方立即接受输入,即:

x () * [] * () char

这是“缩写输入语法”,意思是“x是一个返回指向返回char的函数指针数组的指针的函数。”

尝试输入,您应该得到以下输出:

char (*(*x())[])()