久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

天啦,大學為什么要學習C語言,?

 jingxin95 2019-07-11

那么如題,,大學為什么要學習C語言? 為什么要選擇一門誕生了將近半個世紀的語言,?

對于理工科學生來說,,這個答案可能很簡單,因為這是一門必修課,。

而對于程序員來說選擇一門編程語言,,在某種程度上,對職業(yè)生涯的發(fā)展會產(chǎn)生重大的影響,,所以必須慎之又慎,。

所以,下面我將做一輪理性的分析,,且聽我細細道來,!

C語言

C 語言是由美國 AT&T 貝爾實驗室的研究員 Dennis Ritchie 在 B 語言的基礎上,最初作為改造 Unix 操作系統(tǒng)的開發(fā)語言,,并伴隨著 Unix 操作系統(tǒng)興起而流行,。

后來,隨著微型計算機的發(fā)展,,C 開始被移植到其他操作系統(tǒng)平臺上,,成為獨立的程序設計語言。

下圖摘自 TIOBE 編程語言排行榜,,過去 30 年 90% 時間里 C 都是獨領(lǐng)風騷的,,僅偶爾被 Java 超越:

天啦,大學為什么要學習C語言,?

C語言

那么是因為一門語言一直位于排行榜的第一名就該去學習和使用嗎,?

顯然不是,人云亦云是程序員的大忌,。

為操作系統(tǒng)而生的標簽注定了 C 不可能平庸,。

實話實說,C 是一門很難學習和使用的編程語言,,沒有編譯原理,、操作系統(tǒng)和計算機體系結(jié)構(gòu)扎實的基礎知識,根本不可能把 C 學的明白,、用的順手,。

C 作為一門工程實用性極強的語言,提供了對操作系統(tǒng)和內(nèi)存的精準控制,,高性能的運行時環(huán)境,源碼級的跨平臺編譯等優(yōu)點,才是我們必須學習和使用 C 的理由,。

同時,,幸運的是 C 也是個有趣的東西,對編程的認知越深,,就會越覺得有意思,。

簡單列舉一些 C 的優(yōu)點:

結(jié)構(gòu)化設計語言:

語法清晰、結(jié)構(gòu)簡單,,模塊化使得程序的各個部分除了必要的信息交流外彼此獨立,,便于開發(fā)、調(diào)試以及調(diào)試,。

運算符多:

把括號,、賦值、強制類型轉(zhuǎn)換等都作為運算符處理,,靈活使用各種運算符可以大大提高編程效率,。

數(shù)據(jù)結(jié)構(gòu)豐富:

能實現(xiàn)各種復雜的數(shù)據(jù)類型的運算,引入指針,、結(jié)構(gòu)體概念使程序效率更高,。

為操作系統(tǒng)而生:

可以像匯編語言一樣對位、字節(jié)和地址進行操作,,允許直接訪問物理地址對硬件進行操作,,把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。

程序執(zhí)行效率高:

一般比匯編程序生成的目標代碼效率低 10%~20%,。

可移植性好:

C 語言抽象了針對 CPU 編程的細節(jié),,能廣泛應用于針對大型操作系統(tǒng)和系統(tǒng)軟件的編寫。

具備強大的繪圖功能:

和 C++ 一樣也可以寫出很優(yōu)雅的二維,、三維圖形和動畫,。

有人說,C 是 C++ 的子集,,C 能做到的事,,C++ 一樣能做到,并且還可以做的更好,。

如:三大面向?qū)ο筇匦?、GUI 編程。

誠然,,在 GUI 編程領(lǐng)域 C++ 占據(jù)著絕對的統(tǒng)治地位,,至今無人能撼動。

但真的有必要用 C++ 來替代 C 完成工作嗎,?

很多時候 C++ 解決問題的思路真的比 C 更先進嗎,?

C和C++比較

C、C++ 是廣大程序員都很熟悉東西,打起嘴炮來也是極其恐怖的,,其實在關(guān)乎信仰的問題上,,任何的爭論都是無止境的,也是無意義的,。

希望大家不要把大量精力用來爭論純粹的語言優(yōu)劣上,。

而是去思考如何的正確的把事情做好,什么是正確的做事——快速高效的開發(fā),,保障快速穩(wěn)定的運行,,快速簡單的維護。

下圖是嘴炮大神 Linus Torvalds 當年抨擊 C++ 和他周圍那些 C++ 大牛程序員們的犀利言辭,。

雖然并不欣賞 Linus 的個人風格,,但是還是希望大家能心平氣和的談談 C 相比 C++ 的一些優(yōu)點和現(xiàn)狀:

天啦,大學為什么要學習C語言,?

C語言

隱式操作:

C 簡單直接,、結(jié)構(gòu)清晰,每行代碼都能清楚的被反匯編成相應的語句,,系統(tǒng)會嚴格按照你的代碼去執(zhí)行,。

而 C++ 則不盡然,簡單的語句也說不清楚究竟有多少次構(gòu)造和拷貝,,這樣編寫底層代碼是完全不行的,,底層需要精準和嚴格的控制。

語言接口:

現(xiàn)代軟件工程項目的開發(fā),,不但對性能有很高要求,,對于語言接口的對接能力也有很高要求。

因為偌大的一個項目很少僅使用一種語言來進行開發(fā),,對于底層,,C++ 對內(nèi)存和硬件的控制不如 C 簡潔精準;

對于很多動態(tài)語言和中間件,,如:PHP,、Python 和 Apache、Redis,,都受了 C 的很大影響,,甚至就是 C 開發(fā)出來的東西,對接起來非常方便,。

沒錯兒,,其實 C++ 采用迂回的方式也能對接的,但是,,遠遠不如 C 方便,,開發(fā)和維護成本非常高,。

硬件層

分配內(nèi)存:

系統(tǒng)加電后運行,經(jīng)過匯編初始化棧,,然后再跳轉(zhuǎn)到 C 語言的 start_init() 函數(shù)去,,這時候內(nèi)存分配機制都還沒有建立,,C++ 如何定義類,?如何實例化對象?

標準庫依賴:

C 的所有特性都可以不依賴任何庫運行,,如有必要,,可以按照特定需求自己編寫庫。

處理器兼容:

C++ 的類是依賴基地址+偏移地址的尋址方式,,很多微處理器只有簡單的給定地址尋址,,不支持一條語句實現(xiàn) base + offset 的尋址機制。

很多 C++ 代碼編譯出來需要更多的指令來運算地址,,導致性能下降了太多,。

應用層:

C++ 在做應用層尤其是 GUI 編程,這是 C++ 的傳統(tǒng)強項,。

C 也能優(yōu)雅的做出圖像和動畫,,但開發(fā)效率確實較 C++ 低很多

總結(jié)

下面列舉了 10 多個目前熱門的發(fā)展方向,粗略的介紹了下列項目里最常用的編程語言:

天啦,,大學為什么要學習C語言,?

C語言

由上圖可知,操作系統(tǒng),、編譯原理,、數(shù)據(jù)結(jié)構(gòu)與算法等等基礎知識,是深入理解,、掌握和靈活運用 C 的重要前提,。

現(xiàn)階段程序員職業(yè)生涯超過一半的熱門方向直接或間接與 C 有關(guān),學好 C 的重要性也就不言而喻了,。

天啦,,大學為什么要學習C語言?

C語言

加C/C++學習交.流群獲取C語言,、C++,、Windows高級編程,MFC框架編程,、QT框架編程,,大型企業(yè)實戰(zhàn)項目。Linux應用程序開發(fā),,Linux內(nèi)核研究等多個知識點高級進階干貨的直播免費學習權(quán)限 都是大牛帶飛 讓你少走很多的彎路的 群...號是 546912356

注:加.群要求

1,、零基礎,,目前遇到困難不知從何下手可以加。

2,、在公司待久了,,過得很安逸,但跳槽時面試碰壁,。需要在短時間內(nèi)進修,、跳槽拿高薪的可以加。

3,、基礎非常扎實,,但對目前主流技術(shù)欠缺,需要突破技術(shù)瓶頸的可以加,。

4,、覺得自己很牛B,一般需求都能搞定,。但是所學的知識點沒有系統(tǒng)化,,很難在技術(shù)領(lǐng)域繼續(xù)突破的可以加。

5.企業(yè)一線C/C++高級大牛直播講解知識點,,分享知識,,多年工作經(jīng)驗的梳理和總結(jié),帶著大家全面,、科學地建立自己的技術(shù)體系和技術(shù)認知,!

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多