{eval=Array;=+count(Array);}
Linux整個系統(tǒng)是用C寫的,大量優(yōu)秀的代碼可鑒
開發(fā)環(huán)境的構(gòu)成:
1、編輯器:VI
2、編譯器:選擇GNU C/C++編譯器gcc
3、調(diào)試器:gdb
4、函數(shù)庫:glibc
5、系統(tǒng)頭文件:glibc_header
與Windows相比,Linux是一種開源的操作系統(tǒng),你有任何問題都可以從源代碼和文檔中找到答案,論壇上也有很多高手樂于助人;而Windows是一種封閉的操作系統(tǒng),除了微軟員工外,別人都看不到它的源代碼。
在linux下學(xué)習(xí)c語言有很多優(yōu)勢。
首先,開發(fā)環(huán)境很容易搭建。只需要安裝好gcc編譯器,和vi編輯器就可以了,大部分發(fā)行版默認(rèn)都已經(jīng)安裝好了。一般linux下開發(fā)很少用到集成開發(fā)環(huán)境,需要在命令行下手動執(zhí)行編譯調(diào)試命令。雖然對于新手來講開發(fā)體驗沒有集成開發(fā)環(huán)境好,上手曲線有點高。但是集成開發(fā)環(huán)境隱藏了很多技術(shù)細(xì)節(jié),在 Linux命令行下學(xué)習(xí)c語言可以讓你對整個程序的開發(fā)流程細(xì)節(jié)有更深入的了解。
其次,c語言是一門更偏向硬件的語言,在linux下學(xué)習(xí)c語言,可以讓你對計算機(jī)和linux操作系統(tǒng)的一些底層原理有更深刻的理解。比如c語言里面的局部變量放在函數(shù)棧幀中,全局變量放在data段中,未初始化的全局變量放在bss中,還有通過malloc分配的變量存放在堆中。大部分c語言的書也都是這么講的,但是很少會講這些所謂的棧、堆、數(shù)據(jù)段在內(nèi)存中是如何布局的。而如果你是在linux下學(xué)習(xí)c語言編程,就會了解到linux進(jìn)程內(nèi)存空間的布局,腦子里就會有一張布局圖,這樣在學(xué)習(xí)c語言的時候,看到那些零散的概念就會變成一張圖。既可以理解操作系統(tǒng)內(nèi)核原理,又可以更深刻的理解c語言的運(yùn)行機(jī)制。
最后,在linux下學(xué)習(xí)c語言也可以為你以后的就業(yè)帶來優(yōu)勢。因為在linux學(xué)習(xí)c語言為你的技術(shù)打下了堅實的基礎(chǔ),如果你想轉(zhuǎn)到其他語言的學(xué)習(xí)也會更加輕松。因為你比別人知道更多細(xì)節(jié)。即使不打算轉(zhuǎn)到其他語言的學(xué)習(xí),也會給自己的就業(yè)帶來優(yōu)勢。因為大部分服務(wù)器后端開發(fā)都是用c語言,現(xiàn)在的嵌入式開發(fā)也大多用的是c語言。所以如果你不打算轉(zhuǎn)向其他語言,那么在linux下學(xué)習(xí)c語言也會為你帶來不錯的就業(yè)機(jī)會。
希望我的回答對你有所幫助,謝謝
由于linux的應(yīng)用場合是最多的服務(wù)器領(lǐng)域,服務(wù)器要求程序必須是高性能,超可靠的,這方面c和c++程序是最強(qiáng)的,所以服務(wù)器開發(fā)基本都是c/c++,就跟爬蟲用python一個道理。
0
回答0
回答0
回答0
回答0
回答0
回答6
回答9
回答0
回答0
回答