У меня ошибка компиляции, которую я не могу понять. Обычно я программист на 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 ++ должным образом. Если бы я мог попросить кого-нибудь написать это правильно и объяснить мне, я был бы очень признателен! Заранее спасибо!
~ Коралина
operator
является зарезервированным словом в C ++ (используется для перегрузки операторов), поэтому вы не можете иметь параметр или переменную с именем operator
, переименовывать operator
к чему-то еще.
Других решений пока нет …