能看网站的浏览器,门户网站建设目标,如何访问英文网站,租域名多少钱实际上,规则6.8.6.1规定#xff1a;A goto statement is not allowed to jump past any declarations of objectswith variably modified types.在您的代码中,不存在具有可变修改类型的对象. alloca不声明对象(编译器必须关注).因此,没有类似于alloca的范围,并且没有理由在规则…实际上,规则6.8.6.1规定A goto statement is not allowed to jump past any declarations of objectswith variably modified types.在您的代码中,不存在具有可变修改类型的对象. alloca不声明对象(编译器必须关注).因此,没有类似于alloca的范围,并且没有理由在规则6.8.6.1的意义上存在未定义的行为.编辑稍微详细说明答案VLA情况下行为的“不确定性”是由于承诺声明对象在其范围内(在语言级别)“已知”.通常,声明为代码执行设置上下文.它不需要在运行时执行.但是,在VLA的情况下不是这样这里的承诺部分在运行时实现,打破了C的静态声明方法.为了避免导致动态类型系统的进一步冲突,规则6.8.6.1避免了这种冲突.相反,在语言层面,alloca只是一个函数;它的电话不构成任何范围.在调用它时,它只对其运行时行为做出承诺.如果它没有被调用,我们不会“期望”任何函数.因此,它的纯粹存在不会引起任何冲突两种情况(绕过或不绕过)都有明确定义的语义.