重新宣布为不同类型的符号错误

时间:2014-04-24 11:02:47

标签: c function pointers

我有一个带有以下声明的.h文件:

typedef SetElement (*copySetElements)(SetElement);
typedef void (*freeSetElements)(SetElement);
typedef int (*compareSetElements)(SetElement, SetElement);

和另一个带有以下delarations的.h文件:

   SetElement copySetElements (SetElement element);
   void freeSetElements (SetElement element);
   int compareSetElements (SetElement element1, SetElement element2);

我得到错误:重新声明为不同类型的符号

在第二个.h文件中(我在其中声明了函数)

一旦我改名,就会消失。为什么呢?

1 个答案:

答案 0 :(得分:1)

Typedef与函数和全局变量共享相同的命名空间。

当您对两个不同的东西使用相同的名称时,编译器将不知道您的意思。所以它反而给出了错误。