c:结构类型不兼容错误

c:结构类型不兼容错误,c,struct,C,Struct,我的代码如下: 在这里,我声明publicgroup在“struct group”之后: 当我尝试使用该方法时,出现了一个错误“struct group与struct group类型的参数不兼容”。我正在使用VS2013 错误出现在“int value=isgroupCointainsPID(publicgroup,300);”这是我的VS中的屏幕截图: 最重要的是,如果我使用了注释过的“测试”,它工作得很好 我不太确定,我的代码怎么了 struct proNode{ int pID;

我的代码如下:

在这里,我声明publicgroup在“struct group”之后:

当我尝试使用该方法时,出现了一个错误“struct group与struct group类型的参数不兼容”。我正在使用VS2013

错误出现在“int value=isgroupCointainsPID(publicgroup,300);”这是我的VS中的屏幕截图:

最重要的是,如果我使用了注释过的“测试”,它工作得很好

我不太确定,我的代码怎么了

struct proNode{
    int pID;
    struct proNode *next;

};
char groups [3][128];
struct group{
    int gID;
    char *name;
    struct proNode *prolist;
    struct proNode *blacklist;
}publicgroup;


int isgroupCointainsPID(struct group _group, int pID){
    if (_group.prolist == NULL){
        printf("There is no process %d\n", pID);
        return 0;
    }
    struct proNode *pros = _group.prolist;
    while (pros != NULL){
        if (pros->pID == pID)
            return 1;
        pros = pros->next;

    }
    printf("There is no process %d\n", pID);

    return 0;
}

int main(){
    publicgroup.gID = -1;
    publicgroup.name = "public group";
    publicgroup.prolist = NULL;
    publicgroup.blacklist = NULL;
    publicgroup.gID = 2;
// there is an error :struct group is incompatible with parameters of type struct group
    int value = isgroupCointainsPID(publicgroup, 300);
    return 0;
}

键入方法参数时,我错了, 我从不使用VS,所以我不能给出很多建议, 你想扫描那个用户组,所以你想把它作为指针传递? 正如我所知道的,当我使用代码块时,只要试着改变这个

isgroupCointainsPID(struct group _group, int pID)


我希望它的工作

当您错过函数原型时,不兼容的参数错误是可能的。因此,请检查您是否编写了函数原型

错误在哪一行?如何声明
publicgroup
publicgroup?publicgroup是在“struct group”之后声明的。您向我们展示了两个部分源文件,但没有实际指示它们是如何连接的。当我将它们合并到一个文件中并将
#include
添加到顶部时,它编译时不会出错。你能把问题简化为一个源文件吗?这段代码仍然不是给出错误的代码。将问题缩小为再现错误的完整示例(请参阅或)。首先:复制源文件并开始删除所有不相关的内容。例如,结构中的大多数字段可能是不必要的;
isgroupContainsPID
的主体可能会更改为一个简单的
返回0。确保所有这些代码删除操作都不会引入新错误,但仍会复制旧错误。否,类型的名称是
struct group
,而不仅仅是
group
。你可以只把它称为<代码>组<代码>,如果(a)你有一个<代码> TyPulf< /Cuff>,或者(b)你在C++中编程。然后问题就解决了
isgroupCointainsPID(group _group, int pID)