无法使用.h文件导出功能

时间:2011-05-16 20:54:36

标签: c

我有一个.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);

提前致谢!

1 个答案:

答案 0 :(得分:4)

您正在创建函数指针的typedef而不是原型。您的声明说明Function类型的变量是一个指向函数的指针,该函数不返回任何内容并接受const char*

我认为.h文件中您真正想要的是:

void *Function(const char *filename);