重新定义;以前的定义是'typedef'错误

时间:2014-04-06 11:11:29

标签: c enums typedef redefinition

我收到以下错误:

  

错误C2365:' DECIMAL' :重新定义;之前的定义是' typedef'

用于头文件中的以下定义:

enum DATA_TYPE {DECIMAL, HEXA, STRING};

我理解这个错误是由重复的定义引起的,但是没有其他已知的定义,并且此头文件中没有包含文件。

还有哪些其他原因会导致错误?

1 个答案:

答案 0 :(得分:0)

在您收录的标题文件中的某个位置或无限广告包含的文件中,有一个DECIMAL定义为typedef。

不要去寻找它!好吧,如果你真的想要,但你不能做任何事情。只需将你的枚举重命名为像DT_DECIMAL一样合理的东西。

如果您真的想继续使用DECIMAL并避免此错误,则有两种策略。一种是使用命名空间,将你的名字放在与其他讨厌的定义不同的命名空间中。

另一种(旧派)方式是使用掩蔽宏定义。