當前位置:才華齋>計算機>C語言>

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

C語言 閱讀(1.71W)

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)。

如果程式只包含了一個原始檔,是不是就不需要連結了呢?不是的!

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