我的编译中有一个我无法弄清楚的错误。我通常是一名 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++。如果我能请某人以正确的方式编写它并向我解释,我将不胜感激!提前致谢!~卡萝兰