0

在 R 编程语言中,我一直使用source()来加载保存的脚本。在 C++ 中有类似的方法吗?(用于调用 C++ 代码行)。

4

3 回答 3

5

R 是解释语言,而 C++ 是编译语言。这意味着源代码不会以交互方式运行。从 IDE 动态加载和运行源代码是不可能的,除非在调试期间(“编辑并继续”)。

但是,最近有一些项目尝试在 C++ 之上添加交互层,例如ClingProjucer。在其他编译语言中,例如 D 编程语言(C++ 的近亲),源代码可以直接从命令行运行

于 2013-05-29T14:19:22.147 回答
0

在 C++ 和其他编译语言中,每个源文件都被编译成中间形式。链接器将这些中间体组合到最终的可执行文件(或库)中。一个文件中的代码“使用”另一个文件中的代码,首先调用“头”文件(声明方法和/或类)中定义的接口,然后链接已编译的块代码('目标文件')在一起。

将源代码分成不同的文件有两个好处。首先,可以对代码进行排列,使每个文件都包含整个文件的逻辑子集,从而使程序员的工作更轻松。其次,每个源文件都可以由编译器单独处理,从而提高空间效率(编译器可以处理比单个文件中的内存更多的代码)和时间(编译器可以有选择地重新编译单个更改源文件而不是整个程序。)

可以通过将#include所有源文件包含(with)到一个大源文件中来组合源。如果你这样做,你至少会失去上面的第二个好处。

于 2013-05-29T14:37:50.953 回答
0

不在标准 C++ 中。最接近的等价物是在运行时加载 DLL/.so(库)。这个库可以独立编译,理论上即使你的程序已经启动。但是该库必须在加载之前进行编译,并且必须由用于编译主可执行文件的同一编译器完成。

于 2013-05-30T00:35:47.847 回答