亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

C語(yǔ)言

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

時(shí)間:2024-08-31 05:10:16 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

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

  IDE是用于提供程序開(kāi)發(fā)環(huán)境的應(yīng)用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面等工具。集成了代碼編寫(xiě)功能、分析功能、編譯功能、調(diào)試功能等一體化的開(kāi)發(fā)軟件服務(wù)套。下面是小編分享的使用IDE之前需要了解的一些概念,歡迎大家參考!

  1) 源文件(Source File)

  在開(kāi)發(fā)軟件的過(guò)程中,我們需要將編寫(xiě)好的代碼(Code)保存到一個(gè)文件中,這樣代碼才不會(huì)丟失,才能夠被編譯器找到,才能最終變成可執(zhí)行文件。這種用來(lái)保存代碼的文件就叫做源文件(Source File)。

  每種編程語(yǔ)言的源文件都有特定的后綴,以方便被編譯器識(shí)別;源文件后綴大都根據(jù)編程語(yǔ)言本身的名字來(lái)命名,例如C語(yǔ)言源文件的后綴是.c,C++ 源文件的后綴是.cpp,Java 源文件的后綴是.java,Python 源文件的后綴是.py。

  源文件其實(shí)就是純文本文件,它的內(nèi)部并沒(méi)有特殊格式,能證明這一結(jié)論的典型例子是:在 Windows 下用記事本程序新建一個(gè)文本文檔,并命名為demo.txt,輸入一段C語(yǔ)言代碼并保存,然后將該文件強(qiáng)制重命名為demo.c(后綴從.txt變成了.c),發(fā)現(xiàn)編譯器依然能夠正確識(shí)別其中的C語(yǔ)言代碼,并順利生成可執(zhí)行文件。

  源文件的后綴僅僅是為了表明該文件中保存的是某種語(yǔ)言的代碼(例如.c文件中保存的是C語(yǔ)言代碼),這樣程序員更加容易區(qū)分,編譯器也更加容易識(shí)別,它并不會(huì)導(dǎo)致該文件的內(nèi)部格式發(fā)生改變。

  C++ 是在C語(yǔ)言的基礎(chǔ)上進(jìn)行的擴(kuò)展,C++ 包含了C語(yǔ)言的全部?jī)?nèi)容(請(qǐng)猛擊《C和C++到底有什么關(guān)系》一文了解更多),將C語(yǔ)言代碼放在.cpp文件中不會(huì)有錯(cuò),很多初學(xué)者都是這么做的,很多大學(xué)老師也是這么教的。但是,我還是強(qiáng)烈建議將C語(yǔ)言代碼放在.c文件中,這樣能夠更加嚴(yán)格地遵循C語(yǔ)言的語(yǔ)法,也能夠更加清晰地了解C語(yǔ)言和C++的區(qū)別。

  2) 工程/項(xiàng)目(Project)

  一個(gè)真正的程序(也可以說(shuō)軟件)往往包含多項(xiàng)功能,每一項(xiàng)功能都需要幾十行甚至幾千行、幾萬(wàn)行的代碼來(lái)實(shí)現(xiàn),如果我們將這些代碼都放到一個(gè)源文件中,那將會(huì)讓人崩潰,不但源文件打開(kāi)速度極慢,代碼的編寫(xiě)和維護(hù)也將變得非常困難。

  在實(shí)際開(kāi)發(fā)中,程序員都是將這些代碼分門(mén)別類(lèi)地放到多個(gè)源文件中。除了這些成千上萬(wàn)行的代碼,一個(gè)程序往往還要包含圖片、視頻、音頻、控件、庫(kù)(也可以說(shuō)框架)等其它資源,它們也都是一個(gè)一個(gè)地文件。

  為了有效地管理這些種類(lèi)繁雜、數(shù)目眾多的文件,我們有理由把它們都放到一個(gè)目錄(文件夾)下,并且這個(gè)目錄下只存放與當(dāng)前程序有關(guān)的資源。實(shí)際上 IDE 也是這么做的,它會(huì)為每一個(gè)程序都創(chuàng)建一個(gè)專(zhuān)門(mén)的目錄,將用到的所有文件都集中到這個(gè)目錄下,并對(duì)它們進(jìn)行便捷的管理,比如重命名、刪除文件、編輯文件等。

  這個(gè)為當(dāng)前程序配備的專(zhuān)用文件夾,在 IDE 中也有一個(gè)專(zhuān)門(mén)的稱(chēng)呼,叫做“Project”,翻譯過(guò)來(lái)就是“工程”或者“項(xiàng)目”。在 VC 6.0 下,這叫做一個(gè)“工程”,而在 VS 下,這又叫做一個(gè)“項(xiàng)目”,它們只是單詞“Project”的不同翻譯而已,實(shí)際上是一個(gè)概念。

  3) 工程類(lèi)型/項(xiàng)目類(lèi)型

  “程序”是一個(gè)比較寬泛的稱(chēng)呼,它可以細(xì)分為很多種類(lèi),例如:

  有的程序不帶界面,完全是“黑屏”的,只能輸入一些字符或者命令,稱(chēng)為控制臺(tái)程序(Console Application),例如 Windows 下的 cmd.exe,Linux 或 Mac OS 下的終端(Terminal)。

  有的程序帶界面,看起來(lái)很漂亮,能夠使用鼠標(biāo)點(diǎn)擊,稱(chēng)為GUI程序(Graphical User Interface Program),例如 QQ、迅雷、Chrome 等。

  有的程序不單獨(dú)出現(xiàn),而是作為其它程序的一個(gè)組成部分,普通用戶很難接觸到它們,例如靜態(tài)庫(kù)、動(dòng)態(tài)庫(kù)等。

  不同的程序?qū)?yīng)不同的工程類(lèi)型(項(xiàng)目類(lèi)型),使用 IDE 時(shí)必須選擇正確的工程類(lèi)型才能創(chuàng)建出我們想要的程序。換句話說(shuō),IDE 包含了多種工程類(lèi)型,不同的工程類(lèi)型會(huì)創(chuàng)建出不同的程序。

  不同的工程類(lèi)型本質(zhì)上是對(duì) IDE 中各個(gè)參數(shù)的不同設(shè)置;我們也可以創(chuàng)建一個(gè)空白的工程類(lèi)型,然后自己去設(shè)置各種參數(shù)(不過(guò)一般不這樣做)。

  控制臺(tái)程序?qū)?yīng)的工程類(lèi)型為“Win32控制臺(tái)程序(Win32 Console Application)”,GUI程序?qū)?yīng)的工程類(lèi)型為“Win32程序(Win32 Application)”。

  控制臺(tái)程序是 DOS 時(shí)代的產(chǎn)物了,它沒(méi)有復(fù)雜的功能,沒(méi)有漂亮的界面,只能看到一些文字,雖然枯燥無(wú)趣,也不實(shí)用,但是它非常簡(jiǎn)單,不受界面的干擾,所以適合入門(mén),我強(qiáng)烈建議初學(xué)者從控制臺(tái)程序?qū)W起。等大家對(duì)編程掌握的比較熟練了,能編寫(xiě)上百行的代碼了,再慢慢過(guò)渡到GUI程序。

  4) 鏈接(Link)

  上節(jié)我們講到,源代碼經(jīng)過(guò)編譯(Compile)后就變成了可執(zhí)行文件,其實(shí)這種說(shuō)法有點(diǎn)籠統(tǒng),甚至從嚴(yán)格意義上來(lái)講是錯(cuò)誤的。源代碼要經(jīng)過(guò)編譯(Compile)和鏈接(Link)兩個(gè)過(guò)程才能變成可執(zhí)行文件。

  編譯器一次只能編譯一個(gè)源文件,如果當(dāng)前程序包含了多個(gè)源文件,那么就需要編譯多次。編譯器每次編譯的結(jié)果是產(chǎn)生一個(gè)中間文件(可以認(rèn)為是一種臨時(shí)文件),而不是最終的可執(zhí)行文件。中間文件已經(jīng)非常接近可執(zhí)行文件了,它們都是二進(jìn)制格式,內(nèi)部結(jié)構(gòu)也非常相似。

  將當(dāng)前程序的所有中間文件以及系統(tǒng)庫(kù)(暫時(shí)可以理解為系統(tǒng)中的一些組件)組合在一起,才能形成最終的可執(zhí)行文件,這個(gè)組合的過(guò)程就叫做鏈接(Link)。完成鏈接功能的軟件叫做鏈接器(Linker)。

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

  經(jīng)過(guò)編譯后程序雖然只有一個(gè)中間文件,不再需要和其它的中間文件組合了,但是這個(gè)唯一的中間文件還需要和系統(tǒng)庫(kù)組合,這個(gè)過(guò)程也是鏈接。也就是說(shuō),不管有多少個(gè)源文件,都必須經(jīng)過(guò)編譯和鏈接兩個(gè)過(guò)程才能生成可執(zhí)行文件。

【使用IDE之前需要了解的一些概念】相關(guān)文章:

營(yíng)養(yǎng)學(xué)的基本概念了解05-24

掌握J(rèn)ava語(yǔ)言需要了解的知識(shí)07-15

SATA與IDE的區(qū)別是什么09-15

科目一考試需要了解的專(zhuān)業(yè)名詞07-23

PHP集成開(kāi)發(fā)工具(IDE)的比較09-25

正確使用HTML中title屬性的一些建議10-09

嵌入式Linux操作系統(tǒng)中的一些重要概念10-12

科目三需要注意的一些問(wèn)題07-12

科目三考試需要注意的一些小細(xì)節(jié)11-02

java語(yǔ)言四個(gè)最好用的IDE01-13