我有一个带有以下声明的.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文件中(我在其中声明了函数)
一旦我改名,就会消失。为什么呢?
答案 0 :(得分:1)
Typedef与函数和全局变量共享相同的命名空间。
当您对两个不同的东西使用相同的名称时,编译器将不知道您的意思。所以它反而给出了错误。