在C ++中,R中是否存在等效的“源”?

时间:2013-05-29 13:52:43

标签: c++ r

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

3 个答案:

答案 0 :(得分:5)

R是interpreted language,而C ++是compiled language。这意味着源代码不会以交互方式运行。除非在调试期间(“编辑并继续”),否则从IDE中即时加载和运行源代码是不可能的。

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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