2013-05-29 25 views
0

在R編程語言中,我一直在使用source()加載保存的腳本。是否有類似的方式在C++中執行此操作? (用於調用C++代碼行)。在C++中,R中是否有等價的「源」?

+7

你的意思是'#include'? –

+0

是否以與源代碼相同的方式工作?即你可以把它放在一個腳本的一半,它會從那裏開始? – Kian

+0

@ user2432701:是的。 #包括在指定的#include成所指定的點您當前的文件的文件直接放置。 – diverscuba23

回答

5

R是interpreted language,而C++是compiled language。這意味着源代碼不會交互式運行。在調試(「編輯和繼續」)期間,從IDE加載和運行源代碼是不可能的。

但是,最近有一些項目嘗試在C++之上添加交互層,例如, ClingProjucer。在其他編譯語言中,如D編程語言(C++的表兄弟),源代碼可以是命令行中的directly run

0

在C++和其他編譯語言中,每個源文件都被編譯成一箇中間格式。 A 鏈接器將這些中間體組合成最終的可執行文件(或庫)。通過首先調用在「頭文件」文件(聲明方法和/或類)中定義的接口,然後將鏈接塊的編譯代碼('對象文件')一起。

將源代碼分成不同的文件有兩個好處。首先,可以安排代碼,以便每個文件都包含整體的邏輯子集,從而使程序員的工作更輕鬆。其次,每個源文件可以由編譯器單獨處理,提供空間效率(編譯器可以處理更多的代碼,比單個文件中的內存更適合)和時間(編譯器可以有選擇地重新編譯單個更改源文件,而不是整個程序。)

有可能通過包括(與#include)的所有源文件到一個大的源文件源結合起來。如果你這樣做,你至少失去了第二個好處。

0

不是標準的C++。最接近的是在運行時加載DLL/.so(庫)。即使在程序啓動後,該庫也可以獨立編譯。但是該庫必須在可以加載之前編譯,並且必須由用於編譯主要可執行文件的相同編譯器完成。

相關問題