代码之家  ›  专栏  ›  技术社区  ›  Buggieboy

编译包含“char[]”的头时出现语法错误

  •  1
  • Buggieboy  · 技术社区  · 15 年前

    我正在尝试使用SDLX混合器1.2构建Visual C++ 2008 DLL:

    http://www.libsdl.org/projects/SDL_mixer/

    这可能是由VisualC++生成的,但是当我包含SDLXMydix.H时,我会得到错误。 C2143 : 语法错误:在“[”之前缺少“;” “。

    问题是:

    const char[]mix摷effectsMaxspeed=“mix摷effectsMaxspeed”;

    这是因为使用了动态数组构造“char[]”,而不是“char*”?

    文件中的所有表达式都被包装为“ extern "C" { “。

    3 回复  |  直到 15 年前
        1
  •  5
  •   KPexEA    15 年前

    将方括号移到变量名后面

    const char MIX_EFFECTSMAXSPEED[] = "MIX_EFFECTSMAXSPEED";
    
        2
  •  3
  •   anon    15 年前

    你想要:

    const char MIX_EFFECTSMAXSPEED[] = "MIX_EFFECTSMAXSPEED";
    

    请注意,这里没有“动态数组构造”——您有一个用字符串文字初始化的char数组——都是编译时的事情。

        3
  •  0
  •   Buggieboy    15 年前

    我的错。虽然这里的答案对于C结构是正确的,但实际的问题是我包含了一个“D”语言文件,而不是C版本。