【问题标题】:queue implementation in C compilation errorC编译错误中的队列实现
【发布时间】:2011-03-01 17:27:15
【问题描述】:

我有一个使用链表的队列程序。当我编译它时,它有以下错误:

在“*”标记之前应该是“)”>>在error_line中

///USEFUL PART OF THE PROGRAM
//queue struct
typedef struct{
    int embros,piso,adeia;
    int pinakas[PLITHOS];
}Q;

int main(){
    Q oura_apo; //define a new queue

    dimiourgia(&oura_apo);//create the new queue

return 0;
}

//this function creates a new empty list

void dimiourgia(Q *oura){  //this is error_line
    oura->embros=0;
    oura->piso=0;
}

【问题讨论】:

  • 主要在哪里?你是从函数中调用dimiourgia() 吗?看起来您在不存在的代码中忘记了 ;)
  • 或者如果你能告诉我错误是什么意思。是“忘记了;”确定吗?

标签: c struct queue compilation


【解决方案1】:

您应该将dimiougia 函数的定义放在结构声明和main 之间。否则,您需要前面的声明:

void dimiourgia(Q *oura);

您的程序中可能发生错误的位置不是很清楚,但是,通常会在无法识别结构 Q 时获得该错误消息。

【讨论】:

    【解决方案2】:

    以下代码为我正确编译!

    #define PLITHOS 10
    typedef struct{    
    int embros,piso,adeia;
    int pinakas[PLITHOS];
    }Q;
    Q oura_apo; 
    
    void dimiourgia(Q *oura){   
    oura->embros=0;   
    oura->piso=0;
    }
    
    int main() {
    }
    

    【讨论】:

    • 正确答案是 Baltasarq 写的。在 c/c++ 中,你必须先声明你的函数,然后才能调用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 2011-09-07
    相关资源
    最近更新 更多