神秘错误:预期的标识符或'('''之前''

时间:2013-04-24 00:00:11

标签: c

  case CON_QCLASS:
    if ((GET_CLASS(d->character) = parse_class(*arg)) == CLASS_UNDEFINED) {
      SEND_TO_Q("\r\nThat's not a class.\r\nClass: ", d);
      return;
    else
    SEND_TO_Q(race_menu, d);
    SEND_TO_Q("\r\nRace: ", d);
    STATE(d) = CON_QRACE;
    break;

  case CON_QRACE:
    if ((GET_RACE(d->character) = parse_race(*arg)) == CLASS_UNDEFINED) {
      SEND_TO_Q("\r\nThat's not a race.\r\nRace: ", d);
      return;


    if (GETPFILEPOS(d->character) < 0)
      GETPFILEPOS(d->character) = create_entry(GET_NAME(d->character);
    init_char(d->character);
    save_char(d->character, NOWHERE);
    SEND_TO_Q(motd, d);
    SEND_TO_Q("\r\n\n*** PRESS RETURN: ", d);
    STATE(d) = CON_RMOTD;

    sprintf(buf, "%s [%s] new player.", GET_NAME(d->character), d->host);
    mudlog(buf, NRM, LVL_IMMORT, TRUE);
    break;

这是我得到的错误。

interpreter.c:71:3: error: expected identifier or ‘(’ before ‘case’`enter code here`

最重要的是违规方。我想也许我忘记了一些东西,比如它上方的括号/括号/括号,但似乎并非如此。至少我猜是这样,因为只有在添加上述代码后才会发生错误。

编辑:抱歉浪费你的时间,我意识到自己的错误。我最后把它放在上面的几个部分,完全取代了我的部分代码。我现在觉得很蠢。谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

您缺少每个案例部分开头的if语句的结束括号}

答案 1 :(得分:0)

if ((GET_CLASS(d->character) = parse_class(*arg)) == CLASS_UNDEFINED) {

另外忘记}