【问题标题】:Conflicting types error message [closed]冲突类型错误消息[关闭]
【发布时间】:2018-04-30 07:49:46
【问题描述】:

我在 ANSII C 中的小程序在编译时给了我“冲突类型”错误消息。而且我不知道为什么会这样,特别是考虑到我已经在不同的 .c 文件中测试了相同的情况,没有任何问题。

代码如下:

    void search(char *v, Message *l){

    long int max;

    max=countNodes(l);

(...这部分无关紧要,我向你保证...)

    } //end of the "search" function

    long int countNodes(Message *l){

    long int i=0;

    while(l!=NULL){

    i++;
    l=(l->nseg);

    }

    return(i);
    }

因此,“countNodes”函数确定“l”(链表)中的节点数。然后,该数字返回给“搜索”功能。但是编译器一直给我一个“冲突类型”的错误信息,我不知道为什么......我认为一切都很好,写得很好。

感谢所有帮助。提前致谢!

【问题讨论】:

  • 这不是minimal reproducible example,请仔细阅读并编辑您的问题。另请注意,您应该包含您收到的 exact 错误消息。
  • countNodes() 在调用之前声明的原型在哪里?如果您在使用或定义之前没有原型,那么您必须按照古董 (C90) 而不是现代(C11 或 C99)标准进行编码。

标签: c types


【解决方案1】:

您的编译器基本上会逐行读取您的文件。所以当它读取max=countNodes(l); 时,它还不“知道”你的countNodes 函数。

你有两个选择:

  • countNodes 函数放在搜索函数之前。

  • countNode 函数的原型放在 search 函数之前(如果您不熟悉“c 中的原型”,请阅读它)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 2013-03-25
    • 2015-07-27
    • 2014-03-10
    • 2012-10-04
    • 2013-04-24
    • 1970-01-01
    相关资源
    最近更新 更多