goto相关内容

在支持循环和函数的语言中,&goto";是否有任何合法的使用案例?

我一直觉得,如果可能的话,永远不要使用goto。 然而,前几天在仔细阅读libavcodec(它是用C语言编写的)时,我惊讶地注意到它被多次使用。 在支持循环和函数的语言中使用goto是否有利?若有,原因为何?请提供一个具体的例子,清楚地证明使用goto是合理的。 推荐答案 我知道使用“goto”语句有几个原因(有些人已经谈过了): 干净退出函数 通常在函数中, ..
发布时间:2022-02-27 10:14:29 其他开发

标签地址 (MSVC)

我们正在为高级编译语言编写字节码,经过一些分析和优化,很明显当前最大的性能开销是我们用来跳转到字节的 switch 语句-代码案例. 我们调查了提取每个案例标签的地址并将其存储在字节码流本身中,而不是我们通常打开的指令 ID.如果这样做,我们可以跳过跳转表,直接跳转到当前执行指令的代码位置.这在 GCC 中非常有效,但是,MSVC 似乎不支持这样的功能. 我们尝试使用内联汇编来获取标签 ..
发布时间:2022-01-25 22:07:17 C/C++开发

语句goto不能跨变量定义?

假设这些代码在g++中编译: #include int main() {整数=0;转到退出;int *b = NULL;出口:返回0;} g++ 会抛出错误: goto_test.c:10:1: error: jump to label ‘exit’ [-fpermissive]goto_test.c:6:10:错误:从这里 [-fpermissive]goto_test ..
发布时间:2022-01-23 21:00:54 其他开发

带有goto命令的Windows批处理文件不起作用

我对 GOTO 命令和附属标签有疑问. 事实:给定文件夹中的一堆文件(它们是日志错误),我需要打开它们并检查它们是否包含特定字符串.如果是,则从文件名中删除一些字符(“_"最后出现之后的所有字符,包括它自己)并执行其他操作. 为了切断字符,我以循环方式使用 GOTO 命令,因为我发现它在这里描述:http://www.robvanderwoude.com/battech_while_l ..
发布时间:2022-01-23 08:13:10 其他开发

转到<行号>在 VBA 中

来自 VBA 帮助文件: GoTo 语句 无条件地分支到过程中的指定行. 语法 转到 _行_ 必需的 line 参数可以是任何行标签或行号. 备注 GoTo 只能分支到过程中出现的行. 我的问题是,如何使用 GoTo 跳转到行号?(我知道如何跳转到标签.) (注意:出于好奇,我问这个问题.我无意以这种方式实际使用 GoTo.) 解决方案 ..
发布时间:2022-01-20 19:44:56 其他开发

C标准中可变修改类型的switch语句约束说明

我正在编写一个 C 编译器,当我谈到 switch 语句的实现时,一个约束让我很困惑.标准的第 6.8.4.2p2 节状态: 如果 switch 语句在其中包含关联的 case 或默认标签具有可变修改类型的标识符的范围,整个switch 语句应在该标识符的范围内. 带脚注: 也就是说,声明要么在 switch 语句之前,要么在 switch 语句之前遵循与该开关关联的最后一种情况 ..
发布时间:2022-01-19 11:02:52 其他开发

是否可以将 goto 与 switch 一起使用?

C# 似乎可以,但我需要 C++,最好是跨平台. 基本上,我有一个开关,可以根据单个条件对内容进行排序,然后在其他所有内容上回退到默认处理. 说: 开关(颜色){案例绿色:红色案例:案例蓝色:画();休息;黄色案例:if(AlsoHasCriteriaX)画();别的转到默认值;休息;默认:Print("难看的颜色,没有油漆.")休息;} 解决方案 不完全是,但你可以这样做: ..
发布时间:2022-01-19 10:49:29 C/C++开发

VB.NET Switch 语句 GoTo 案例

我正在 VB.NET 中编写一些使用 switch 语句的代码,但在其中一种情况下它需要跳转到另一个块.在 C# 中它看起来像这样: 开关(参数){案例“用户ID"://在这里做点什么.案例“packageID"://在这里做点什么.案例“mvrType":如果(其他因素){//在这里做点什么.}别的{转到默认值;}默认://做一些处理...休息;} 但是,我不知道如何将其转换为 VB.NET ..
发布时间:2022-01-19 10:35:25 其他开发

在开关中使用“goto"?

我看到了一个建议的编码标准,它是 Never use goto unless in a switch statement fall-through. 我不关注.这个“异常"案例究竟是什么样的,可以证明 goto 的合理性? 解决方案 这个构造在 C# 中是非法的: 开关(变量){案例2:Console.WriteLine("变量是 >= 2");情况1:Console.WriteL ..
发布时间:2022-01-19 10:25:30 C#/.NET

函数体内的 url 是如何编译的

我刚刚将一个 url 粘贴到我的代码中,忘记评论它,但看到 MSVC++ 成功编译它,我很惊讶.我的代码是这样的, void my_function(){http://www.google.co.in/} 这怎么会被 MSVC++ 编译? 解决方案 其实http后面跟一个冒号被当成标签通过 C++,您可以在 goto 语句(如 goto http;)和其他语句(即 //www.goog ..

Python中的`goto`

我必须在 Python 中使用 goto.我找到了 entrians goto 但我的 Python 实现(Mac 上的 CPython 2.7.1)没有这个模块,所以它似乎不是便携式的.它至少应该适用于所有支持 CPython 字节码的 Python 实现(特别是我关心 CPython 和 PyPy).然后是这个相关问题,以及cdjc 的 goto.以及下面的答案给出的那些. 我可以手动构 ..
发布时间:2022-01-04 21:50:22 Python

Windows 批处理文件 - 系统找不到指定的批处理标签

问题 我在使用 Windows 批处理文件和标签时遇到问题.我不断收到此错误: 系统找不到批次标签指定 我的尝试 两台电脑;一台 Windows XP 和一台 2003 服务器. 确保它被编码为 ASCII 编辑了行继续符的十六进制代码.尝试用 CR 、 LF 和 CRLF 依次替换 all .所有组合都给我同样的错误. 尝试在标签前插入额外的字符,使标签超过 512 ..
发布时间:2021-12-25 17:43:20 其他开发

Erlang 的递归函数不只是一个 goto 吗?

只是想把它放在我的脑海里.考虑这个 Erlang 代码示例: test() ->收到{来自,随便} ->%% 做一点事测试();{来自,别的东西} ->%% 做点别的测试();结尾. 不是 test() 调用,只是一个 goto 吗? 我问这个是因为在 C 中我们学到了,如果你做一个函数调用,返回位置总是放在堆栈上.我无法想象这一定是 Erlang 的情况,因为这会导致计算器溢出. ..
发布时间:2021-12-16 09:07:54 其他开发

带有 goto 命令的 Windows 批处理文件不起作用

我对 GOTO 命令和附属标签有疑问. 事实:给定文件夹中的一堆文件(它们是日志错误),我需要打开它们并检查它们是否包含特定字符串.如果是,则从文件名中删除一些字符(最后一次出现“_"之后的所有字符,包括它自己)并进行其他操作. 为了切断字符,我以循环方式使用 GOTO 命令,因为我发现它在这里描述:http://www.robvanderwoude.com/battech_while ..
发布时间:2021-12-13 17:58:56 其他开发

(Windows 批处理)如果块中的 Goto 行为非常奇怪

如果我使用以下 Windows 批处理代码片段并运行它: echo foo如果 1 == 1 (回声条转到ASDF:asdf回声巴兹) 别的 (回声) 我期望的输出是: foo酒吧巴兹 但我得到: foo酒吧巴兹quux 如果我注释掉 goto asdf 行,它会给出我期望的输出.echo quux 行不应该被执行,那么为什么 goto 的存在会导致这种情况发生? 更新:就其价值 ..
发布时间:2021-12-13 17:17:28 其他开发

是否可以将标签的地址存储在变量中并使用 goto 跳转到它?

我知道每个人都讨厌 goto.在我的代码中,出于我考虑过并感到满意的原因,它们提供了一个有效的解决方案(即我不是在寻找“不要这样做"作为答案,我理解您的保留意见,并理解我为什么要使用它们反正). 到目前为止,它们都很棒,但我想以这样一种方式扩展功能,即要求我本质上能够存储指向标签的指针,然后再访问它们. 如果此代码有效,它将代表我需要的功能类型.但它不起作用,30 分钟的谷歌搜索没有发 ..
发布时间:2021-12-13 13:40:13 其他开发

使用“goto"语句不好吗?

研究如何突破二次循环后 while (true) {//主循环for (int I = 0; I 大多数人推荐调用'goto'函数 看下面的例子: while (true) {//主循环for (int I = 0; I 然而;我经常听说“goto"语句是不好的做法.下图完美地说明了我的观点:​​ 所以 goto 语句到底有多糟糕,为什么? 有没有比使用“goto"语句 ..
发布时间:2021-12-08 23:30:43 C#/.NET