我的代码如下:
这里我声明了#34; 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;
}
答案 0 :(得分:2)
错过函数原型时,可能会出现不兼容的参数错误。因此,请检查您是否编写了函数原型
答案 1 :(得分:-1)
我在输入那个方法参数时给你错了, 我从不使用VS,所以我不能给出很多建议, 我要客户扫描该用户组,所以你想把它作为指针传递? 据我所知,当我使用代码块时,只需尝试更改此
isgroupCointainsPID(struct group _group, int pID)
到
isgroupCointainsPID(group _group, int pID)
我希望它的工作