在C++中,R中是否有等效的"source"?

In C++, is there an equivalent of "source" in R?

本文关键字:source C++ 是否      更新时间:2023-10-16

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

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

然而,最近有一些项目试图在c++的基础上添加一个交互层,例如:Cling和the Projucer。在其他编译语言中,例如D编程语言(c++的近亲),源代码可以直接从命令行运行。

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

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

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

标准c++中没有。最接近的等价是加载DLL/。运行时(library)。从理论上讲,即使在程序启动之后,这个库也可以独立编译。但是,库必须在加载之前进行编译,并且必须由用于编译主可执行文件的同一编译器完成。