辉夜Ayn 2023-12-25 14:08 采纳率: 0%
浏览 4

c的goto可以用变量存储目的地吗?

比如变量为where。
有三个要跳转的目的地:w1,w2,w3。

可以直接:
where=w1
goto where;
吗?

还是只能:
switch(where)
case 1:goto w1
case 2:goto w2
case 3:goto w3

  • 写回答

1条回答 默认 最新

  • 普通网友 2023-12-25 14:18
    关注

    在C语言中, goto 语句的目标标签必须是在当前作用域内可见的标识符。这意味着你不能使用变量作为 goto 语句的目标。
    因此,你不能直接使用变量来存储 goto 语句的目标。你需要使用 switch 语句或其他条件语句来根据变量的值选择相应的 goto 目标。
    以下是使用 switch 语句的示例:

    switch(where) {
        case 1:
            goto w1;
        case 2:
            goto w2;
        case 3:
            goto w3;
        default:
            // 处理无效的目标值
            break;
    }
     // 标签定义
    w1:
        // 目标w1的代码
        // ...
        goto end;
     w2:
        // 目标w2的代码
        // ...
        goto end;
     w3:
        // 目标w3的代码
        // ...
        goto end;
     end:
        // 代码继续执行的地方
    
    

    请注意,使用 goto 语句可能会导致代码不易理解和维护,因此请谨慎使用。在大多数情况下,使用结构化的控制流程(如 if 语句、循环语句)更易读和可维护。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月25日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表