如上所述,我得到了一个错误:在mHbbtSMFnPtrsmCurrHbbtvState(hbbtvSMEvents,hbbtvSMEvntsParam)中没有匹配到operator[];
typedef int (*HBBTVSMFnPtr)(int hbbtvSMEvent, HBBTVSMEvntParam smEvntParam );
static int HBBTVSMErrorHandler(int hbbtvSMEvent, HBBTVSMEvntParam smEvntParam);声明:
static HBBTVSMFnPtr mHbbtSMFnPtrs[HBBTV_SM_STATE_MAXSTATES][HBBTV_SM_EVNT_MAXEVNTS];
static int mCurrHbbtvState = HBBTV_SM_STATE_TURNEDOFF;
typedef struct
{
char* param;
int paramLength;
}HBBTVSMEvntParam;这是一个任务:
mHbbtSMFnPtrs[loopVar1][loopVar2] = HBBTVSMErrorHandler;它是这样命名的:
int a = mHbbtSMFnPtrs[mCurrHbbtvState][hbbtvSMEvntsParam](hbbtvSMEvents, hbbtvSMEvntsParam);发布于 2013-05-03 19:00:41
在看不到变量声明的情况下,最有可能的问题是:
mHbbtSMFnPtrs不是函数指针的二维数组(或类似的容器),或者mCurrHbbtvState或hbbtvSMEvntsParam不是整数或无作用域的枚举类型,因此不能用作数组索引。如果你没有从赋值行得到任何错误,那么第二个错误更有可能发生。
如果您可以发布这些声明,那么我们就可以看到哪一个是这种情况。此外,您应该考虑使用易读的名称-这将使类似的问题更容易发现。
https://stackoverflow.com/questions/16357147
复制相似问题