gpt4 book ai didi

c++ - R 调用 Cpp 代码 : global variables not re-initialized

转载 作者:行者123 更新时间:2023-11-28 03:19:10 24 4
gpt4 key购买 nike

我正在编写一个 R 程序包,它一次调用一个 Cpp 程序。

我不是R和Cpp编程专家,但我会尽量把问题解释清楚:

  • Cpp 代码创建了一些全局变量并在之后对其进行修改(我知道这很糟糕...)。

  • 当我打开 R 并运行一次我的包中的 R 函数时,一切都很好。但是当我重新运行它时,似乎 Cpp 代码创建的全局变量没有重新初始化,而是使用修改后的值。换句话说,似乎 Cpp 创建的全局变量“保留在内存中”,并且在我再次调用程序时不会被重写。

我希望我的问题足够清楚,并且有人可以向我解释为什么它会这样。先感谢您。

最佳答案

你确实解释得有点不好,但本质上你需要理解

  • 函数调用只是临时的,无论它是否涉及来自 R 的 C++

  • 所以无论你设置什么都会在之后消失除非你说返回一个值,或者......

  • 如果你想保持“状态”,创建一个合适的类,先实例化它,然后使用该对象进行调用。 Rcpp 可以帮助 R/C++ 接口(interface)。

关于c++ - R 调用 Cpp 代码 : global variables not re-initialized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15970450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com