- 相關(guān)推薦
C語言:使用IDE之前需要了解的概念
使用 IDE 的過程中會涉及到一些與編程有關(guān)的概念,這些概念如果不提前了解,即使能夠運行出程序來,也是霧里看花,知其然不知其所以然。歡迎大家閱讀!更多相關(guān)信息請關(guān)注相關(guān)欄目!
1) 源文件(Source File)
在開發(fā)軟件的過程中,我們需要將編寫好的代碼(Code)保存到一個文件中,這樣代碼才不會丟失,才能夠被編譯器找到,才能最終變成可執(zhí)行文件。這種用來保存代碼的文件就叫做源文件(Source File)。
每種編程語言的源文件都有特定的后綴,以方便被編譯器識別;源文件后綴大都根據(jù)編程語言本身的名字來命名,例如C語言源文件的后綴是.c,C++ 源文件的后綴是.cpp,Java 源文件的后綴是.java,Python 源文件的后綴是.py。
源文件其實就是純文本文件,它的內(nèi)部并沒有特殊格式,能證明這一結(jié)論的典型例子是:在 Windows 下用記事本程序新建一個文本文檔,并命名為demo.txt,輸入一段C語言代碼并保存,然后將該文件強制重命名為demo.c(后綴從.txt變成了.c),發(fā)現(xiàn)編譯器依然能夠正確識別其中的C語言代碼,并順利生成可執(zhí)行文件。
源文件的后綴僅僅是為了表明該文件中保存的是某種語言的代碼(例如.c文件中保存的是C語言代碼),這樣程序員更加容易區(qū)分,編譯器也更加容易識別,它并不會導致該文件的內(nèi)部格式發(fā)生改變。
C++ 是在C語言的基礎(chǔ)上進行的擴展,C++ 包含了C語言的全部內(nèi)容(請猛擊《C和C++到底有什么關(guān)系》一文了解更多),將C語言代碼放在.cpp文件中不會有錯,很多初學者都是這么做的,很多大學老師也是這么教的。但是,我還是強烈建議將C語言代碼放在.c文件中,這樣能夠更加嚴格地遵循C語言的語法,也能夠更加清晰地了解C語言和C++的區(qū)別。
2) 工程/項目(Project)
一個真正的程序(也可以說軟件)往往包含多項功能,每一項功能都需要幾十行甚至幾千行、幾萬行的代碼來實現(xiàn),如果我們將這些代碼都放到一個源文件中,那將會讓人崩潰,不但源文件打開速度極慢,代碼的編寫和維護也將變得非常困難。
在實際開發(fā)中,程序員都是將這些代碼分門別類地放到多個源文件中。除了這些成千上萬行的代碼,一個程序往往還要包含圖片、視頻、音頻、控件、庫(也可以說框架)等其它資源,它們也都是一個一個地文件。
為了有效地管理這些種類繁雜、數(shù)目眾多的文件,我們有理由把它們都放到一個目錄(文件夾)下,并且這個目錄下只存放與當前程序有關(guān)的資源。實際上 IDE 也是這么做的,它會為每一個程序都創(chuàng)建一個專門的目錄,將用到的所有文件都集中到這個目錄下,并對它們進行便捷的管理,比如重命名、刪除文件、編輯文件等。
這個為當前程序配備的專用文件夾,在 IDE 中也有一個專門的稱呼,叫做“Project”,翻譯過來就是“工程”或者“項目”。在 VC 6.0 下,這叫做一個“工程”,而在 VS 下,這又叫做一個“項目”,它們只是單詞“Project”的不同翻譯而已,實際上是一個概念。
3) 工程類型/項目類型
“程序”是一個比較寬泛的稱呼,它可以細分為很多種類,例如:
有的程序不帶界面,完全是“黑屏”的,只能輸入一些字符或者命令,稱為控制臺程序(Console Application),例如 Windows 下的 cmd.exe,Linux 或 Mac OS 下的終端(Terminal)。
有的程序帶界面,看起來很漂亮,能夠使用鼠標點擊,稱為GUI程序(Graphical User Interface Program),例如 QQ、迅雷、Chrome 等。
有的程序不單獨出現(xiàn),而是作為其它程序的一個組成部分,普通用戶很難接觸到它們,例如靜態(tài)庫、動態(tài)庫等。
不同的程序?qū)煌墓こ填愋停椖款愋停褂?IDE 時必須選擇正確的工程類型才能創(chuàng)建出我們想要的程序。換句話說,IDE 包含了多種工程類型,不同的工程類型會創(chuàng)建出不同的程序。
不同的工程類型本質(zhì)上是對 IDE 中各個參數(shù)的不同設(shè)置;我們也可以創(chuàng)建一個空白的工程類型,然后自己去設(shè)置各種參數(shù)(不過一般不這樣做)。
控制臺程序?qū)墓こ填愋蜑椤癢in32控制臺程序(Win32 Console Application)”,GUI程序?qū)墓こ填愋蜑椤癢in32程序(Win32 Application)”。
控制臺程序是 DOS 時代的產(chǎn)物了,它沒有復雜的功能,沒有漂亮的界面,只能看到一些文字,雖然枯燥無趣,也不實用,但是它非常簡單,不受界面的干擾,所以適合入門,我強烈建議初學者從控制臺程序?qū)W起。等大家對編程掌握的比較熟練了,能編寫上百行的代碼了,再慢慢過渡到GUI程序。
4) 鏈接(Link)
上節(jié)我們講到,源代碼經(jīng)過編譯(Compile)后就變成了可執(zhí)行文件,其實這種說法有點籠統(tǒng),甚至從嚴格意義上來講是錯誤的。源代碼要經(jīng)過編譯(Compile)和鏈接(Link)兩個過程才能變成可執(zhí)行文件。
編譯器一次只能編譯一個源文件,如果當前程序包含了多個源文件,那么就需要編譯多次。編譯器每次編譯的結(jié)果是產(chǎn)生一個中間文件(可以認為是一種臨時文件),而不是最終的可執(zhí)行文件。中間文件已經(jīng)非常接近可執(zhí)行文件了,它們都是二進制格式,內(nèi)部結(jié)構(gòu)也非常相似。
將當前程序的所有中間文件以及系統(tǒng)庫(暫時可以理解為系統(tǒng)中的一些組件)組合在一起,才能形成最終的可執(zhí)行文件,這個組合的過程就叫做鏈接(Link)。完成鏈接功能的軟件叫做鏈接器(Linker)。
如果程序只包含了一個源文件,是不是就不需要鏈接了呢?不是的!
經(jīng)過編譯后程序雖然只有一個中間文件,不再需要和其它的中間文件組合了,但是這個唯一的中間文件還需要和系統(tǒng)庫組合,這個過程也是鏈接。也就是說,不管有多少個源文件,都必須經(jīng)過編譯和鏈接兩個過程才能生成可執(zhí)行文件。
【C語言:使用IDE之前需要了解的概念】相關(guān)文章:
使用IDE之前需要了解的一些概念12-18
C語言指針的概念02-25
C語言的文件概念07-18
C語言編譯器和IDE選擇05-27
C語言編譯器和IDE的選擇06-30
C語言指針數(shù)組的概念07-19
C語言的內(nèi)存使用03-06
C語言變量的使用03-30