实际上,规则6.8.6.1规定:

A goto statement is not allowed to jump past any declarations of objects

with variably modified types.

在您的代码中,不存在具有可变修改类型的对象. alloca不声明对象(编译器必须关注).因此,没有类似于alloca的范围,并且没有理由在规则6.8.6.1的意义上存在未定义的行为.

编辑

稍微详细说明答案:VLA情况下行为的“不确定性”是由于承诺声明对象在其范围内(在语言级别)“已知”.通常,声明为代码执行设置上下文.它不需要在运行时执行.但是,在VLA的情况下不是这样:这里的承诺部分在运行时实现,打破了C的静态声明方法.为了避免导致动态类型系统的进一步冲突,规则6.8.6.1避免了这种冲突.

相反,在语言层面,alloca只是一个函数;它的电话不构成任何范围.在调用它时,它只对其运行时行为做出承诺.如果它没有被调用,我们不会“期望”任何函数.因此,它的纯粹存在不会引起任何冲突:两种情况(绕过或不绕过)都有明确定义的语义.

alloca函数的风险_alloca的函数范围中的goto是否有效?相关推荐

  1. php 函数漏洞,PHP绕过禁用函数漏洞的原理与利用分析

    漏洞简介 PHP 发布公告,旧版本的 php_array_merge_recursive 函数中存在UAF风险,被利用可能导致用来绕过禁用函数. 受影响的版本 PHP 7.2 - 7.4.9 安全专家 ...

  2. oracle 函数默认参数设置,Decode函数的默认值陷阱

    在Oracle的诸多SQL函数中,笔者认为最容易被忽视的强大功能函数就是decode.在Decode函数的帮助下,很多要使用case when字句或者要使用PL/SQL游标处理的需求,可以方便的在一句 ...

  3. linux协议栈skb操作函数,linux协议栈skb操作函数

    1,struct sk_buff数据结构 struct sk_buff{ //这两个结构必须放在最前面 struct sk_buff *next; struct sk_buff *prev; stru ...

  4. 实现一个通用的函数柯里化的函数

    本文目的 这篇文章会一步一步带你实现一个通用的函数柯里化的函数,即使你完全不懂柯里化这个概念也没关系,我会先介绍柯里化函数的概念,然后以实现一个完整的判断变量类型的函数的例子来让你直观体验函数柯里化, ...

  5. Kotlin读书笔记之内联函数、扩展函数、匿名函数、lambda

    本文主要涉及内联函数.扩展函数.lambada以及匿名函数等.作为读书笔记对于细节深入没有过多的扩展,后续将对于各个知识点作进一步的研度.本文的内容主要是参考官方教程以及博客内容,作为读书笔记以及后续 ...

  6. Go 学习笔记(61)— Go 高阶函数、函数作为一等公民(函数作为输入参数、返回值、变量)的写法

    函数在 Go 语言中属于"一等公民(First-Class Citizen)"拥有"一等公民"待遇的语法元素可以如下使用 可以存储在变量中: 可以作为参数传递给 ...

  7. C++ 笔记(13)— 函数(函数声明、函数定义、函数调用[传值、指针、引用]、函数参数默认值、函数重载)

    每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数. 1. 函数声明 函数声明告诉编译器函数的名称.返回类型和参数.函数声明包括以下几个部分: ret ...

  8. php函数的默认值,php函数指定默认值方法的小例子

    php函数指定默认值方法的小例子 本节内容: php函数指定默认值 在php编程中,为自定义函数设定默认值,当用户调用该函数时,如果不给参数指定值,参数会用默认值顶替. 例1, 复制代码 代码如下: ...

  9. strstr函数头文件_C语言(函数)学习之strstr strcasestr

    一.strstr函数使用 [1] 函数原型 char *strstr(const char *haystack, const char *needle); [2] 头文件 #include [3] 函 ...

最新文章

  1. 浏览器刷新再次升级!不同浏览器窗口
  2. CentOS7、REHL7的firewalld防火墙使用简单说明
  3. Linux SKB结构体中各个长度字段的含义(len, data_len, headlen, pagelen)
  4. Android NDK学习笔记4:JNI访问Java构造函数
  5. 直播预告|中台基石腾讯云TStack的正确使用姿势
  6. php.ini设置相关信息汇总
  7. vue给组件传递不同的值
  8. C#LeetCode刷题之#67-二进制求和(Add Binary)
  9. python 获取pv_Python爬虫入门教程 40-100 博客园Python相关40W博客抓取 scrapy
  10. python中正则表达式中_python 中 正则表达式(Regular Expressions)学习
  11. 高级函数技巧-函数柯里化
  12. C# WinForm 控件美化之改变ListView Head 的背景色
  13. 游戏设计创造对话探秘之迭代
  14. 我中招了:解喝汽水问题
  15. 2021-07-13 CNN池化理解学习
  16. 想进外企你应该知道的七大基本面试知识
  17. Java技术体系概述
  18. Aurora使用教程 第一讲
  19. 网易云瀚海一体机,云计算“全栈”航母带来了什么?
  20. GAMS系列分享12—GAMS基础知识——模型和求解

热门文章

  1. Cisco无线AP的配置
  2. 如何利用MySQL加密函数保护Web网站敏感数据
  3. mysql中locat函数,MySQL中的LOCATE和POSITION函数使用方法 | 很文博客
  4. 递归神经网络变形之 (Long Short Term Memory,LSTM)
  5. wins系统flask绑定mysql_flask如何连接mssql,网上大多是sqlite和mysql教程?
  6. shell if多个条件判断_萌新关于Excel VBA中IF条件判断语句的一点心得体会
  7. listview 每行后面的小箭头_主卧带小衣帽装修,这几个装修方案,你喜欢哪个?...
  8. 曲线连接线_荷重位移曲线仪操作使用注意事项-荷重位移曲线仪厂家
  9. Implicit declaration of function 'NSFileTypeForHFSTypeCode' is invalid in C99
  10. linux 信号处理函数详解