資料介紹
分享到:標(biāo)簽:C語言編程 Linux 編譯鏈接器 調(diào)試器 操作系統(tǒng)
3.1 Linux下C語言編程概述
3.1.1 C語言簡(jiǎn)單回顧
C語言最早是由貝爾實(shí)驗(yàn)室的Dennis Ritchie為了UNIX的輔助開發(fā)而編寫的,它是在B語言的基礎(chǔ)上開發(fā)出來的。盡管C語言不是專門針對(duì)UNIX操作系統(tǒng)或機(jī)器編寫的,但它與UNIX系統(tǒng)的關(guān)系十分緊密。由于它的硬件無關(guān)性和可移植性,使C語言逐漸成為世界上使用最廣泛的計(jì)算機(jī)語言。
為了進(jìn)一步規(guī)范C語言的硬件無關(guān)性,1987年,美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)根據(jù)C語言問世以來各種版本對(duì)C語言的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn),稱為ANSI C。ANSI C語言比原來的標(biāo)準(zhǔn)C語言有了很大的發(fā)展。目前流行的C語言編譯系統(tǒng)都是以它為基礎(chǔ)的。
C語言的成功并不是偶然的,它強(qiáng)大的功能和它的可移植性讓它能在各種硬件平臺(tái)上游刃自如??傮w而言,C語言有如下特點(diǎn)。
(1)C語言是“中級(jí)語言”。它把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來。C語言可以像匯編語言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。
?。?)C語言是結(jié)構(gòu)化的語言。C語言采用代碼及數(shù)據(jù)分隔,使程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護(hù)以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便地調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。
?。?)C語言功能齊全。C語言具有各種各樣的數(shù)據(jù)類型,并引入了指針的概念,可使程序效率更高。另外,C語言也具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器,而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的。
?。?)C語言可移植性強(qiáng)。C語言適合多種操作系統(tǒng),如DOS、Windows、Linux,也適合多種體系結(jié)構(gòu),因此尤其適合在嵌入式領(lǐng)域的開發(fā)。
3.1.2 Linux下C語言編程環(huán)境概述
Linux下的C語言程序設(shè)計(jì)與在其他環(huán)境中的C程序設(shè)計(jì)一樣,主要涉及編輯器、編譯鏈接器、調(diào)試器及項(xiàng)目管理工具。現(xiàn)在我們先對(duì)這4種工具進(jìn)行簡(jiǎn)單介紹,后面會(huì)對(duì)其一一進(jìn)行講解。
?。?)編輯器。
Linux下的編輯器就如Windows下的記事本、寫字板等一樣,完成對(duì)所錄入文字的編輯功能。Linux中最常用的編輯器有vi(vim)和emacs,
它們功能強(qiáng)大、使用方便,深受編程愛好者的喜愛。在本書中,著重介紹vi和emacs。
(2)編譯鏈接器。
編譯是指源代碼轉(zhuǎn)化生成可執(zhí)行代碼的過程,它所完成的主要工作如圖3.1所示。

圖3.1 編譯過程
可見,編譯過程是非常復(fù)雜的,它包括詞法、語法和語義的分析、中間代碼的生成和優(yōu)化、符號(hào)表的管理和出錯(cuò)處理等。在Linux中,最常用的編譯器是gcc編譯器。它是GNU推出的功能強(qiáng)大、性能優(yōu)越的多平臺(tái)編譯器,其執(zhí)行效率與一般的編譯器相比平均效率要高20%~30%。
?。?)調(diào)試器
調(diào)試器并不是代碼執(zhí)行的必備工具,而是專為方便程序員調(diào)試程序而用的。有編程經(jīng)驗(yàn)的讀者都知道,在編程的過程當(dāng)中,往往調(diào)試所消耗的時(shí)間遠(yuǎn)遠(yuǎn)大于編寫代碼的時(shí)間。因此,有一個(gè)功能強(qiáng)大、使用方便的調(diào)試器是必不可少的。gdb是絕大多數(shù)Linux開發(fā)人員所使用的調(diào)試器,它可以方便地設(shè)置斷點(diǎn)、單步跟蹤等,足以滿足開發(fā)人員的需要。
(4)項(xiàng)目管理器。
Linux中的項(xiàng)目管理器“make”有些類似于Windows中Visual c++里的“工程”,它是一種控制編譯或者重復(fù)編譯軟件的工具,另外,它還能自動(dòng)管理軟件編譯的內(nèi)容、方式和時(shí)機(jī),使程序員能夠把精力集中在代碼的編寫上而不是在源代碼的組織上。
?
3.1 Linux下C語言編程概述
3.1.1 C語言簡(jiǎn)單回顧
C語言最早是由貝爾實(shí)驗(yàn)室的Dennis Ritchie為了UNIX的輔助開發(fā)而編寫的,它是在B語言的基礎(chǔ)上開發(fā)出來的。盡管C語言不是專門針對(duì)UNIX操作系統(tǒng)或機(jī)器編寫的,但它與UNIX系統(tǒng)的關(guān)系十分緊密。由于它的硬件無關(guān)性和可移植性,使C語言逐漸成為世界上使用最廣泛的計(jì)算機(jī)語言。
為了進(jìn)一步規(guī)范C語言的硬件無關(guān)性,1987年,美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)根據(jù)C語言問世以來各種版本對(duì)C語言的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn),稱為ANSI C。ANSI C語言比原來的標(biāo)準(zhǔn)C語言有了很大的發(fā)展。目前流行的C語言編譯系統(tǒng)都是以它為基礎(chǔ)的。
C語言的成功并不是偶然的,它強(qiáng)大的功能和它的可移植性讓它能在各種硬件平臺(tái)上游刃自如??傮w而言,C語言有如下特點(diǎn)。
(1)C語言是“中級(jí)語言”。它把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來。C語言可以像匯編語言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。
?。?)C語言是結(jié)構(gòu)化的語言。C語言采用代碼及數(shù)據(jù)分隔,使程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護(hù)以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便地調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。
?。?)C語言功能齊全。C語言具有各種各樣的數(shù)據(jù)類型,并引入了指針的概念,可使程序效率更高。另外,C語言也具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器,而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的。
?。?)C語言可移植性強(qiáng)。C語言適合多種操作系統(tǒng),如DOS、Windows、Linux,也適合多種體系結(jié)構(gòu),因此尤其適合在嵌入式領(lǐng)域的開發(fā)。
3.1.2 Linux下C語言編程環(huán)境概述
Linux下的C語言程序設(shè)計(jì)與在其他環(huán)境中的C程序設(shè)計(jì)一樣,主要涉及編輯器、編譯鏈接器、調(diào)試器及項(xiàng)目管理工具。現(xiàn)在我們先對(duì)這4種工具進(jìn)行簡(jiǎn)單介紹,后面會(huì)對(duì)其一一進(jìn)行講解。
?。?)編輯器。
Linux下的編輯器就如Windows下的記事本、寫字板等一樣,完成對(duì)所錄入文字的編輯功能。Linux中最常用的編輯器有vi(vim)和emacs,
它們功能強(qiáng)大、使用方便,深受編程愛好者的喜愛。在本書中,著重介紹vi和emacs。
(2)編譯鏈接器。
編譯是指源代碼轉(zhuǎn)化生成可執(zhí)行代碼的過程,它所完成的主要工作如圖3.1所示。

圖3.1 編譯過程
可見,編譯過程是非常復(fù)雜的,它包括詞法、語法和語義的分析、中間代碼的生成和優(yōu)化、符號(hào)表的管理和出錯(cuò)處理等。在Linux中,最常用的編譯器是gcc編譯器。它是GNU推出的功能強(qiáng)大、性能優(yōu)越的多平臺(tái)編譯器,其執(zhí)行效率與一般的編譯器相比平均效率要高20%~30%。
?。?)調(diào)試器
調(diào)試器并不是代碼執(zhí)行的必備工具,而是專為方便程序員調(diào)試程序而用的。有編程經(jīng)驗(yàn)的讀者都知道,在編程的過程當(dāng)中,往往調(diào)試所消耗的時(shí)間遠(yuǎn)遠(yuǎn)大于編寫代碼的時(shí)間。因此,有一個(gè)功能強(qiáng)大、使用方便的調(diào)試器是必不可少的。gdb是絕大多數(shù)Linux開發(fā)人員所使用的調(diào)試器,它可以方便地設(shè)置斷點(diǎn)、單步跟蹤等,足以滿足開發(fā)人員的需要。
(4)項(xiàng)目管理器。
Linux中的項(xiàng)目管理器“make”有些類似于Windows中Visual c++里的“工程”,它是一種控制編譯或者重復(fù)編譯軟件的工具,另外,它還能自動(dòng)管理軟件編譯的內(nèi)容、方式和時(shí)機(jī),使程序員能夠把精力集中在代碼的編寫上而不是在源代碼的組織上。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- C語言嵌入式Linux高級(jí)編程
- 基于Linux的C語言編程入門教程 19次下載
- Linux下C語言編程入門教程詳細(xì)說明 39次下載
- 信號(hào)與定時(shí)器的使用在Linux系統(tǒng)下的C語言程序免費(fèi)下載
- LINUX系統(tǒng)教程之如何在Linux系統(tǒng)下進(jìn)行編程 9次下載
- Linux操作系統(tǒng)實(shí)用教程之如何進(jìn)行Linux系統(tǒng)下的編程管理 5次下載
- Linux操作系統(tǒng)下C語言編程入門.pdf 98次下載
- TMS320C54xC語言編程和運(yùn)行環(huán)境的詳細(xì)中文資料概述 18次下載
- Linux下C編程 嵌入式開發(fā) 31次下載
- 基于Linux操作系統(tǒng)下C語言編程入門 11次下載
- linux 下C編程 9次下載
- linux內(nèi)核C語言的編程風(fēng)格 0次下載
- DSP環(huán)境下C語言的編程優(yōu)化 22次下載
- linux下c語言編程pdf 0次下載
- Linux操作系統(tǒng)-C語言編程入門-pdf
- C語言中的socket編程基礎(chǔ) 2k次閱讀
- Linux應(yīng)用編程的基本概念 1.1k次閱讀
- PLC編程語言和C語言的區(qū)別 6.6k次閱讀
- plc編程語言與c語言的聯(lián)系 c語言和PLC有什么區(qū)別 7k次閱讀
- C語言是否支持泛型編程? 1.3k次閱讀
- 深入探索Linux中的C語言 2.8k次閱讀
- C語言是怎么面向?qū)ο?b class="flag-6" style="color: red">編程 2.6k次閱讀
- C語言的簡(jiǎn)介和特點(diǎn)說明 8.8k次閱讀
- 淺談嵌入式Linux下的C語言編程知識(shí)要點(diǎn) 5.3k次閱讀
- 嵌入式Linux下的C編程知識(shí)要點(diǎn)匯總 3.6k次閱讀
- 學(xué)習(xí)開發(fā)環(huán)境和編程語言:匯編語言和C語言的比較 9.7k次閱讀
- C語言作為高級(jí)編程語言中的一門“低級(jí)”語言為什么要學(xué)習(xí)? 8.9k次閱讀
- plc與C語言有什么關(guān)系_plc可以用c語言編程嗎_plc的C語言編程詳解 7.9w次閱讀
- Java編程和c語言哪一種更有優(yōu)勢(shì)_C語言與JAVA的區(qū)別是什么 2.5w次閱讀
- arduino用什么語言編程 7.1w次閱讀
下載排行
本周
- 1冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 2安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 3直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費(fèi)
- 4丹佛斯2800系列變頻器說明書
- 8.00 MB | 1次下載 | 5 積分
- 5PC8011同步開關(guān)型降壓3.5A單節(jié)鋰電池充電管理電路技術(shù)手冊(cè)
- 0.74 MB | 1次下載 | 免費(fèi)
- 6ES7243E+ES8311音頻錄制與播放電路資料
- 0.06 MB | 1次下載 | 5 積分
- 7SDM02 激光測(cè)距模塊產(chǎn)品手冊(cè)
- 0.43 MB | 1次下載 | 免費(fèi)
- 8SDFM 激光測(cè)距模塊模組手冊(cè)
- 0.54 MB | 1次下載 | 免費(fèi)
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場(chǎng)分析及創(chuàng)新應(yīng)用
- 3.11 MB | 43次下載 | 免費(fèi)
- 3RV1126B系列開發(fā)板產(chǎn)品資料
- 4.19 MB | 18次下載 | 免費(fèi)
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開發(fā)板 四核異構(gòu)、3路千兆網(wǎng),賦能多元化工業(yè)場(chǎng)景
- 3.05 MB | 12次下載 | 免費(fèi)
- 6【開源】60余套STM32單片機(jī)、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項(xiàng)目案例及入門學(xué)習(xí)資源包
- 10.55 MB | 8次下載 | 免費(fèi)
- 7冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車載充電機(jī)主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191448次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論