expected identifier before numeric constant 问题的解决

很不错,这篇文章解决我的一个类似问题,由于这篇文章的存在,从发现道题到解决问题只花了几分钟,谢谢原文作者了

我的问题主要是在linux的ioctl系统调用命令字的设计中一个命令字无意中与某一个函数名重名了。。。。然后调用过程出现问题

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
                };
编译通过

你可能感兴趣的:(其他)