0

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

我不是 R 和 Cpp 编程方面的专家,但我会尽量清楚地解释这个问题:

  • Cpp 代码创建一些全局变量,然后对其进行修改(我知道它很糟糕......)。

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

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

4

1 回答 1

2

实际上,您确实解释得有些差,但本质上您需要了解

  • 函数调用只是暂时的,无论它是否涉及 R 中的 C++

  • 所以你设置的任何东西都会在之后消失,除非你说返回一个值,或者......

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

于 2013-04-12T11:48:48.210 回答