繁体   English   中英

类型冲突(函数)

[英]Conflicting types (Functions)

我有两个.c文件, main.ctest.c以及两个头文件, type.hinterface.h

其中interface.h包括type.h

test.c包含头文件"interface.h"

#include "interface.h"
#include <stdlib.h>
#include <stdio.h>

int create(Ptr * p) {
//do stuff

}

int addToFront(Ptr * p, void * T) {
//do stuff later
}

main.c还包括"interface.h"

#include "interface.h"
#include <stdio.h>
#include <stdlib.h>

并具有我要在test.c调用的功能

void isEqual(void * L, void * Item) {

}

我将如何在test.c中调用isEqual函数?

因为在test.c中这样做:

isEqual(p,T); //in the addToFront function,

具体说明隐式声明/冲突类型错误。 我不允许将这些函数放到test.c中,所以我被迫这样称呼它们,包括后卫可以解决这个问题吗?

isEqual的原型需要在test.c可用,因为您要在test.c调用该函数。 如果原型不在interface.h并且不允许您更改interface.h ,则需要a)使用原型创建自己的头文件,b)在main.ctest.c中都包含该头。 – user3386109

您说的是冲突类型错误 这表明test.c链接isEqual ,但包含main.c中。 在这种情况下,您可以放样机

void isEqual(void *L, void *Item);

在测试初期test.c

ps:名为isEqual的函数具有void返回类型是很奇怪的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM