使用IDE之前需要了解的一些概念

IDE是用於提供程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面等工具。集成了代碼編寫功能、分析功能、編譯功能、調試功能等一體化的開發軟件服務套。下面是小編分享的使用IDE之前需要了解的一些概念,歡迎大家參考!

使用IDE之前需要了解的一些概念

 1) 源文件(Source File)

在開發軟件的過程中,我們需要將編寫好的代碼(Code)保存到一個文件中,這樣代碼纔不會丟失,才能夠被編譯器找到,才能最終變成可執行文件。這種用來保存代碼的文件就叫做源文件(Source File)。

每種編程語言的源文件都有特定的後綴,以方便被編譯器識別;源文件後綴大都根據編程語言本身的名字來命名,例如C語言源文件的後綴是.c,C++ 源文件的後綴是,Java 源文件的後綴是,Python 源文件的後綴是。

源文件其實就是純文本文件,它的內部並沒有特殊格式,能證明這一結論的典型例子是:在 Windows 下用記事本程序新建一個文本文檔,並命名爲,輸入一段C語言代碼並保存,然後將該文件強制重命名爲demo.c(後綴從變成了.c),發現編譯器依然能夠正確識別其中的C語言代碼,並順利生成可執行文件。

源文件的後綴僅僅是爲了表明該文件中保存的是某種語言的代碼(例如.c文件中保存的`是C語言代碼),這樣程序員更加容易區分,編譯器也更加容易識別,它並不會導致該文件的內部格式發生改變。

C++ 是在C語言的基礎上進行的擴展,C++ 包含了C語言的全部內容(請猛擊《C和C++到底有什麼關係》一文了解更多),將C語言代碼放在文件中不會有錯,很多初學者都是這麼做的,很多大學老師也是這麼教的。但是,我還是強烈建議將C語言代碼放在.c文件中,這樣能夠更加嚴格地遵循C語言的語法,也能夠更加清晰地瞭解C語言和C++的區別。

 2) 工程/項目(Project)

一個真正的程序(也可以說軟件)往往包含多項功能,每一項功能都需要幾十行甚至幾千行、幾萬行的代碼來實現,如果我們將這些代碼都放到一個源文件中,那將會讓人崩潰,不但源文件打開速度極慢,代碼的編寫和維護也將變得非常困難。

在實際開發中,程序員都是將這些代碼分門別類地放到多個源文件中。除了這些成千上萬行的代碼,一個程序往往還要包含圖片、視頻、音頻、控件、庫(也可以說框架)等其它資源,它們也都是一個一個地文件。

爲了有效地管理這些種類繁雜、數目衆多的文件,我們有理由把它們都放到一個目錄(文件夾)下,並且這個目錄下只存放與當前程序有關的資源。實際上 IDE 也是這麼做的,它會爲每一個程序都創建一個專門的目錄,將用到的所有文件都集中到這個目錄下,並對它們進行便捷的管理,比如重命名、刪除文件、編輯文件等。

這個爲當前程序配備的專用文件夾,在 IDE 中也有一個專門的稱呼,叫做“Project”,翻譯過來就是“工程”或者“項目”。在 VC 6.0 下,這叫做一個“工程”,而在 VS 下,這又叫做一個“項目”,它們只是單詞“Project”的不同翻譯而已,實際上是一個概念。

 3) 工程類型/項目類型

“程序”是一個比較寬泛的稱呼,它可以細分爲很多種類,例如:

有的程序不帶界面,完全是“黑屏”的,只能輸入一些字符或者命令,稱爲控制檯程序(Console Application),例如 Windows 下的 ,Linux 或 Mac OS 下的終端(Terminal)。

有的程序帶界面,看起來很漂亮,能夠使用鼠標點擊,稱爲GUI程序(Graphical User Interface Program),例如 QQ、迅雷、Chrome 等。

有的程序不單獨出現,而是作爲其它程序的一個組成部分,普通用戶很難接觸到它們,例如靜態庫、動態庫等。

不同的程序對應不同的工程類型(項目類型),使用 IDE 時必須選擇正確的工程類型才能創建出我們想要的程序。換句話說,IDE 包含了多種工程類型,不同的工程類型會創建出不同的程序。

不同的工程類型本質上是對 IDE 中各個參數的不同設置;我們也可以創建一個空白的工程類型,然後自己去設置各種參數(不過一般不這樣做)。

控制檯程序對應的工程類型爲“Win32控制檯程序(Win32 Console Application)”,GUI程序對應的工程類型爲“Win32程序(Win32 Application)”。

控制檯程序是 DOS 時代的產物了,它沒有複雜的功能,沒有漂亮的界面,只能看到一些文字,雖然枯燥無趣,也不實用,但是它非常簡單,不受界面的干擾,所以適合入門,我強烈建議初學者從控制檯程序學起。等大家對編程掌握的比較熟練了,能編寫上百行的代碼了,再慢慢過渡到GUI程序。

 4) 鏈接(Link)

上節我們講到,源代碼經過編譯(Compile)後就變成了可執行文件,其實這種說法有點籠統,甚至從嚴格意義上來講是錯誤的。源代碼要經過編譯(Compile)和鏈接(Link)兩個過程才能變成可執行文件。

編譯器一次只能編譯一個源文件,如果當前程序包含了多個源文件,那麼就需要編譯多次。編譯器每次編譯的結果是產生一箇中間文件(可以認爲是一種臨時文件),而不是最終的可執行文件。中間文件已經非常接近可執行文件了,它們都是二進制格式,內部結構也非常相似。

將當前程序的所有中間文件以及系統庫(暫時可以理解爲系統中的一些組件)組合在一起,才能形成最終的可執行文件,這個組合的過程就叫做鏈接(Link)。完成鏈接功能的軟件叫做鏈接器(Linker)。

如果程序只包含了一個源文件,是不是就不需要鏈接了呢?不是的!

經過編譯後程序雖然只有一箇中間文件,不再需要和其它的中間文件組合了,但是這個唯一的中間文件還需要和系統庫組合,這個過程也是鏈接。也就是說,不管有多少個源文件,都必須經過編譯和鏈接兩個過程才能生成可執行文件。