在'*'标记之前解析错误

时间:2014-02-28 11:53:52

标签: c pointers function-pointers

const EPGState* NewEPGState[] =
{
    &bootupState,
    &standbyState,
    &watchtvState,
    &guideState,
    &settingsState,
    &easState,
    &diagnosticsState
};

此代码有什么问题?我在'*'标记之前收到错误解析错误 您的回答将不胜感激。

2 个答案:

答案 0 :(得分:0)

检查您使用的编译器版本,此代码编译良好 g ++版本4.1.2 20071124。 但在使用gcc编译时失败

我假设您已正确定义了类/结构EPGState,并且下面使用的所有变量都是相同的类型,即EPGState。

class EPGState
{
};
int main()
{ 
    EPGState bootupState,standbyState;
   const EPGState* NewEPGState[] =
   {
       &bootupState,
       &standbyState
   };
}

您是在编译步骤还是在运行时收到“解析错误”。 这个问题并不清楚。

我写了一些示例代码来测试。

#include<iostream>
int main()
{
    int a;
    int b;
    int *ac[]={&a,&b};
    return 0;
}
  • 上面的代码在gcc上失败并在g ++上编译。
  • gcc版本4.1.2 20071124(Red Hat 4.1.2-42)

    /tmp/cc6829sJ.o: In function __static_initialization_and_destruction_0(int, int)': test1.cpp:(.text+0x4f): undefined reference to std::ios_base::Init::Init()

答案 1 :(得分:0)

你可能有

struct EPGState
{
  ...


struct EPGState bootupState = 
{
  ...

的某个地方。

然后就是

const struct EPGState * NewEPGState[] =
{
    &bootupState,
    ...