c++ - 使用 gcc 编译时区分大小写导致错误

标签 c++ c visual-c++

编译时出错: break 语句不在循环或 switch 内 case 标签“不在 switch 语句内”

我无法附加整个代码,因为如果您坚持查看整个代码,请告诉我,这太错误了,我会以某种方式上传它。

void S9xSetupDefaultKeymap()
{   
    S9xUnmapAllControls();

    // Build key map
    s9xcommand_t cmd;

    // Player 1

    S9xMapButton( 65, cmd = S9xGetCommandT("Joypad1 Left"), false );    // A
    S9xMapButton( 68, cmd = S9xGetCommandT("Joypad1 Right"), false );   // D
    S9xMapButton( 87, cmd = S9xGetCommandT("Joypad1 Up"), false );      // W
    S9xMapButton( 83, cmd = S9xGetCommandT("Joypad1 Down"), false );    // S

    S9xMapButton( 79, cmd = S9xGetCommandT("Joypad1 X"), false );       // O
    S9xMapButton( 80, cmd = S9xGetCommandT("Joypad1 Y"), false );       // P
    S9xMapButton( 75, cmd = S9xGetCommandT("Joypad1 A"), false );       // K
    S9xMapButton( 76, cmd = S9xGetCommandT("Joypad1 B"), false );       // L

    S9xMapButton( 88, cmd = S9xGetCommandT("Joypad1 L"), false );       // X
    S9xMapButton( 77, cmd = S9xGetCommandT("Joypad1 R"), false );       // M

    S9xMapButton( 13, cmd = S9xGetCommandT("Joypad1 Start"), false );   // Enter
    S9xMapButton( 16, cmd = S9xGetCommandT("Joypad1 Select"), false );  // Shift

    // Player 2

    S9xMapButton( 70, cmd = S9xGetCommandT("Joypad2 Left"), false );    // F
    S9xMapButton( 72, cmd = S9xGetCommandT("Joypad2 Right"), false );   // H
    S9xMapButton( 84, cmd = S9xGetCommandT("Joypad2 Up"), false );      // T
    S9xMapButton( 71, cmd = S9xGetCommandT("Joypad2 Down"), false );    // G

    S9xMapButton( 67, cmd = S9xGetCommandT("Joypad2 X"), false );       // C
    S9xMapButton( 86, cmd = S9xGetCommandT("Joypad2 Y"), false );       // V
    S9xMapButton( 66, cmd = S9xGetCommandT("Joypad2 A"), false );       // B
    S9xMapButton( 78, cmd = S9xGetCommandT("Joypad2 B"), false );       // N

    S9xMapButton( 89, cmd = S9xGetCommandT("Joypad2 L"), false );       // Y
    S9xMapButton( 85, cmd = S9xGetCommandT("Joypad2 R"), false );       // U

    S9xMapButton( 81, cmd = S9xGetCommandT("Joypad2 Start"), false );   // Q
    S9xMapButton( 69, cmd = S9xGetCommandT("Joypad2 Select"), false );  // E


    case "joypad1 down":
    break;

    case "joypad1 x":
    break;

    case "joypad1 y":
    break;

    case "joypad1 a":
    break;

    case "joypad1 b":
    break;

    case "joypad1 l":
    break;

    case "joypad1 r":
    break;

    case "joypad1 start":
    break;

    case "joypad1 select"
    break;

    // player 2

    case "joypad2 left":
    break;

    case "joypad2 right":
    break;

    case "joypad2 up":
    break;

    case "joypad2 down":
    break;

    case "joypad2 x":
    break;

    case "joypad2 y":
    break;

    case "joypad2 a":
    break;

    case "joypad2 b":
    break;

    case "joypad2 l":
    break;

    case "joypad2 r":
    break;

    case "joypad2 start":
    break;

    case "joypad2 select":
    break;

最佳答案

case 语法示例

switch (variable)
{
   case 1:
      //Do stuff
      break;
   case 2:
      //Do stuff
      break;
   default:
      //Do stuff
      break;
}

请记住,通过使用 switch 语句,您只能处理整型变量。并且您需要指定使用 switch 语句引用哪个变量 case 语句。如果您坚持测试 char* 变量,则行为将与您期望的不同,因为您将只比较指针,而不是 char* 的内容> 数组。

就您而言,最好使用 ifelse if

关于c++ - 使用 gcc 编译时区分大小写导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16516777/

相关文章:

visual-studio-2010 - 在 VS2010 中调试 Win32 MFC 应用程序时显示控制台窗口

c++ - 无需太多更改即可将 MFC 应用程序设置为最大分辨率

c++ - 如何确定路径是否指定了实际文件?

c++ - 找不到全局命名空间范围内的函数名称

c++ - 为什么这不要求用户进行其他输入?

c - 为什么 C 程序(.exe)停止工作?

c++ - 在依赖多个继承编译器的情况下是否访问成员变量?如何正确地做到这一点?

c++ - int 参数为 : conditional expressions ignored? 的意外模板行为

c - 需要帮助弄清楚为什么我的一个测试用例没有通过

c - 为什么 double 变量在 c 中除法后不显示余数?