宏定义重复导致编译问题

enum ProxyType
{
  OTHERALL_TASK = 0,
  SPEECH_TASK = 3
};


以前上面的代码编译是没问题的,更新代码后,错误提示:
BrType.hpp:632: 错误:expected identifier before numeric constant
BrType.hpp:632: 错误:expected `}' before numeric constant
BrType.hpp:632: 错误:expected unqualified-id before numeric constant
BrType.hpp:633: 错误:expected declaration before ‘}’ token
问题出在:
  SPEECH_TASK,在另外一个头文件里也有宏定义!而这个文件include了那个头文件,   SPEECH_TASK被替换为相应的常数,所以出了以上的错误提示。
找了两个小时,主要是很难想到是别的文件#define 引起的冲突!



videowidget/m
playervideowidget.h
               enum SEEK_TYPE {
                        RELATIVE,
                        PERCENT,
                        ABSOLUTE_POS
                };
改为:
               enum SEEK_TYPE {
                        RELATIVE_RELATIVE,
                        PERCENT,
                        ABSOLUTE_POS
                };
编译通过

转自:http://blog.chinaunix.net/space.php?uid=21134884&do=blog&id=1830240


补充:

若宏定义与枚举变量名字冲突,可在#include时先保护枚举所在的头文件,再保护宏定义所在的头文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值