0

我的编译中有一个我无法弄清楚的错误。我通常是一名 C 编码员,而且我才开始将我的整个程序转换为使用 C++。所以,我将我的 C 文件重命名为 CC(交叉编译),通常我只需要手动编辑错误。然而,这对我来说是个谜——不确定这是否是 C++ 主义。

这是感兴趣的 OPL 玩家。

以下代码有问题:

static void LoadOperatorData(int operator, const genmidi_op_t *data, bool max_level)
{
    int level;

// The scale and level fields must be combined for the level register.
// For the carrier wave we always set the maximum level.

    level = (data->scale & 0xc0) | (data->level & 0x3f);

    if (max_level)
    {
      level |= 0x3f;
    }

   OPL_WriteRegister(OPL_REGS_LEVEL + operator, level);
   OPL_WriteRegister(OPL_REGS_TREMOLO + operator, data->tremolo);
   OPL_WriteRegister(OPL_REGS_ATTACK + operator, data->attack);
   OPL_WriteRegister(OPL_REGS_SUSTAIN + operator, data->sustain);
   OPL_WriteRegister(OPL_REGS_WAVEFORM + operator, data->waveform);
}

我收到了这个代码块的许多错误:

http://i.imgur.com/WHf5Q3g.jpg

所以看来我没有正确地将其转换为 C++。如果我能请某人以正确的方式编写它并向我解释,我将不胜感激!提前致谢!~卡萝兰

4

1 回答 1

3

operator是 C++ 中的保留字(用于重载运算符),因此您不能将参数或变量命名为operator. 重命名operator为别的东西。

于 2015-09-23T05:10:09.793 回答