VS2010如何解决导入的两个文件中重定义的错误

天地一扁舟 2013-04-30 05:46:47
我一个项目中导入了两个文件A,B(都非常大),

文件A定义了:typedef unsigned short WORD;

文件B定义了:typedef struct word {
FNUM wnum; /* word number */
FVAL weight; /* word weight */
} WORD;

结果在VS2010下面出现:

1>d:\qtproject\compress 4.29\compress\svm_common.h(56): error C2371: “WORD”: 重定义;不同的基类型
1> C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\windef.h(155) : 参见“WORD”的声明

这个错误。请问如何修改啊?
这个项目比较大,这两大文件全是引用两个人的,在做这个集成时发生了这个错误,诸位朋友有什么好办法吗?两个文件均又分别包含许多其他文件,并且文件A,B各自的子文件中很多次用到WORD,如何在不改变这两个文件中WORD这一名称的情况下进行修改。难道是用#ifdef 或 #pragram once吗?这两个文件都有这些,但还是同名撞车了。

...全文
167 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
天地一扁舟 2013-04-30
  • 打赏
  • 举报
回复
那么如何把自己定义的WORD放在结构体中呢
hww836967373 2013-04-30
  • 打赏
  • 举报
回复
出现这种情况一般书头文件包含出现错误。
bluewanderer 2013-04-30
  • 打赏
  • 举报
回复
这不是两个文件撞车了,是你跟Windows撞车了。你可以把你的WORD放在你的namespace里。 正常情况下两个CPP里各自私有的非实体的定义是不会撞车的。

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧