递归函数中的全局变量如何保持为零?

2024-01-06

因此,如果我有一个带有全局变量 var_ 的递归函数:

int var_;

void foo()
{
  if(var_ == 3)
    return;
  else
    var_++; foo();
}

然后我有一个调用 foo() 的函数,如下所示:

void bar()
{
  foo();
  return;
}

每次 foo 被调用时设置 var_ =0 的最佳方法是什么?我知道我可以这样做:

void bar()
{
  var_ =0;
  foo();
  return;
}

但我经常使用递归函数,我不想调用 foo 并忘记在以后设置 var_=0 。

有人对如何解决这个问题有什么建议吗?

谢谢,乔什


Turn foo()进入辅助函数。

void foo() {
    var_ = 0;
    foo_helper();
}

void foo_helper() {
    if(var_ == 3)
        return;
    else
        var_++; foo_helper();
}

您不必更改任何现有代码,您仍然可以直接调用foo()并让它发挥作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

递归函数中的全局变量如何保持为零? 的相关文章

随机推荐

  • JPA 标准教程 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我一直在尝试寻找 JPA Criteria API 教程 但没有取得太大成功 你知道有哪些适合初学者的
  • Xcode 4 代码感知不起作用

    我正在 Xcode 4 中运行 旧 Xcode 3 项目 代码感知不适用于我自己的类 我尝试过以下操作 清理 重建 删除派生数据 安装4 3文档 Restart 没有任何运气 有时代码感觉有效 但大多数情况下我只是得到 未完成 尝试这个 打
  • 套接字错误:[Errno 111] Ubuntu 上的连接被拒绝

    Traceback most recent call last s smtplib SMTP localhost File usr lib python2 7 smtplib py line 251 in init code msg sel
  • Fortify 源分析器和 Apache Lenya

    我正在尝试将 Fortify 源代码分析器用于我学校的一个研究项目 以测试开源 Java Web 应用程序的安全性 我目前正在研究 Apache Lenya 我正在使用最新的稳定版本 Lenya v2 0 2 根目录下有一个文件名为buil
  • 使用 querySelectorAll 时,Typescript 对象可能为“null”.ts(2531)

    class Test state elements container null constructor container HTMLElement null options permet de prendre les options du
  • 在 C# 中将文本添加到文件的开头和结尾

    我有一个进程可以获取一系列 xml 文件 我将 xml 放在引号中的原因是文件中的文本没有根元素 这会导致 xml 无效 在我的处理中 我想纠正这个问题并打开每个文件 在每个文件的开头和结尾添加一个根节点 然后将其关闭 这是我的想法 但这涉
  • 使用私钥通过 VSCode 连接到主机

    我想连接到远程服务器 我知道用户名和主机名 而且我也有private key pem文件 如何使用 VSCode 连接到该虚拟机 我在互联网上的解决方案中遇到了这个错误 这是合理的 因为我还没有导入这个private key pem文件在任
  • 对于没有字段的构造函数,reallyUnsafePtrEquality#

    据我了解 没有字段的类型的构造函数是 静态分配 的 并且 GHC在所有用途之间共享这些 https stackoverflow com a 3256825 176841 并且GC不会移动这些 https ghc haskell org tr
  • MD5 是否仍然足以唯一标识文件?

    考虑到 MD5 算法的破坏和安全问题等 MD5 散列文件是否仍然被认为是唯一识别该文件的足够好的方法 安全性不是我在这里最关心的问题 但唯一地标识每个文件才是 有什么想法吗 是的 MD5从安全角度来说已经被彻底攻破 但意外碰撞的概率仍然微乎
  • 对嵌套列表进行排序:从排序中排除第一项[重复]

    这个问题在这里已经有答案了 SET 我有一个csv file其中包括我的茶点的当前余额 它是逗号分隔的 但在本例中逗号 为了提高可读性而删除 NAME AMOUNT PRICE Coca Cola 8 1 25 Fanta 6 1 29 D
  • 嵌套集模型,对类别中的项目进行计数

    我有一个适用于我的网站的嵌套集模型 其中包含子类别等中的项目 除了一个我无法解决的问题之外 它运行得很好 item id item name 1 Laptop 2 iPod Classic 80GB 3 iPod Classic 160GB
  • Safari 不尊重 `transform-origin` SVG 属性

    我正在尝试使用构建 SVGtransform属性 但是 虽然我的 SVG 在 Chrome 和 Firefox 中看起来符合预期 但在 Safari 中看起来却损坏了 看来 Safari 不尊重transform origin属性并始终应用
  • Oracle ODP.Net 和连接池

    我想这确实是两个问题合二为一 我们开发了一个访问 Oracle 数据库的 Net 应用程序 并注意到在更改用户的 Oracle 密码后 该应用程序会在连接字符串中使用旧密码继续运行一小段时间 据推测 这与现有连接的池化方式有关 当第一次调查
  • jQuery:在子元素之前附加子元素

    我有这样的 HTML 代码 div div class foobar div div 我想在里面附加子元素div content之前div foobar元素 怎样才能做到这一点呢 在回答你的问题之前 让我先让你更清楚 更容易地了解一些事情
  • 检测列中导致 SQL 错误的单元格

    假设我们正在尝试更改 SQL 表中列的类型 例如varchar to float 使用 ALTER TABLE
  • 我的搜索没有在谷歌地图中显示其标记有什么问题?

    我创建了一个地方搜索谷歌地图 喜欢搜索学校类型等地方 我为私立和公立学校做了标记 搜索框有效 但是当我单击输入时 它不显示公立 私立学校 是这是因为我的代码 在图标上 或标记 唯一的问题是当我单击输入时 它不显示其标记
  • 将连续日期分组在一起

    我在 Excel csv 中有一个请病假的 许多 员工列表 按以下格式列出 每个病假实例都有自己的线路 我想添加另一列 结果 它记录病期的长度 例如 Mon Tues Wed 表示这三个条目中的每一个都标有 3 我是Python新手 我想知
  • 将大型减速机拆分为较小的减速机

    我有一个称为动物的特征减速器 切片减速器 我想将这些减速器分成哺乳动物 鸟类 鱼类等 这部分很简单 因为我可以简单地使用ActionReducerMap 现在假设哺乳动物的减速器状态很大 我想将其分成几个较小的减速器 即猫的家族 狗的家族等
  • 之间有区别吗?和 * 在 cron 表达式中?奇怪的例子

    我的系统中有以下 cron 表达式 0 0 0 1 1 1 你知道吗 我不知道这意味着什么 写这篇文章的人在接下来的两周里正在度假 所以我必须亲自去了解一下 文档可以找到here https docs oracle com cd E1205
  • 递归函数中的全局变量如何保持为零?

    因此 如果我有一个带有全局变量 var 的递归函数 int var void foo if var 3 return else var foo 然后我有一个调用 foo 的函数 如下所示 void bar foo return 每次 foo