我有一个.c文件,其中包含函数代码;以及.h文件,用于设置函数原型,以便可以从其他文件访问它们,但它们存在冲突。
这是我得到的错误:
file.c:111: error: ‘Function’ redeclared as different kind of symbol
file.h:16: error: previous declaration of ‘Function’ was here
在file.c中:
#include "file.h"
...
void *Function(const char *filename) {
...
}
在file.h中:
typedef void (*Function)(const char *filename);
提前致谢!
答案 0 :(得分:4)
您正在创建函数指针的typedef而不是原型。您的声明说明Function
类型的变量是一个指向函数的指针,该函数不返回任何内容并接受const char*
。
我认为.h文件中您真正想要的是:
void *Function(const char *filename);