Ошибка: объявление оператора как не функции

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

1 ответ

operator является зарезервированным словом в C++ (используется для перегрузки операторов), поэтому вы не можете иметь параметр или переменную с именем operator, переименовывать operator к чему-то еще.

Другие вопросы по тегам