成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我們為什么要學C語言?

開發 后端
C語言,似乎是一門很久遠的語言了。但是身為程序員的我們,都對C語言有所了解。究竟我們為什么要學習C?

C是寫操作系統最常使用的編程語言(譯注:沒有之一)。Unix是用C寫的第一個操作系統。后來Microsoft Windows,Mac OS X,還有GNU/Linu也都是用C寫的。C不僅是操作系統的語言,也是其它幾乎所有今天最流行的高級語言的先驅和靈感來源。事實上,Perl,PHP,Python和Ruby都是用C寫的。

通過類推的方式,讓我們這么說你一直在學的西班牙語、意大利語、法語或者葡萄語。你想過知道點拉丁語會很有用嗎?因為拉丁語是所有這些語言的基礎,了解了C,你就能理解和欣賞建構在傳統C之上的整個編程語言家族。懂得C,就擁有了自由。  

為什么是C,而不是匯編語言?

匯編語言提供了速度和最大的編程可控性,C提供的是可移植性。  

不同的處理器必須采用不同的匯編語言來編程,必須選擇其中一種,只能學習其中一種,這太*了。事實上,面對眾多的計算機架構,C的一個主要優勢在于其通用性和可移植性,而將硬件層的大多控制留給了匯編語言。  

例如,C程序可以編譯運行在如下設備上,HP 50g計算器(ARM處理器)、TI-89計算器(68000處理器)、Palm OS Cobalt智能手機(ARM處理器)、原始的iMac(PowerPC)、Arduino(Atmel AVR)和Intel iMac(Intel Core 2 Duo)。這些設備每個都有自己的專有匯編語言,并且完全不兼容于任何其它一個設備的匯編語言。  

匯編語言,很強大,但很難去編寫大型應用程序,很難以邏輯方式去閱讀和解釋。C是一種編譯語言,可以產生快速有效的可執行文件。C也是一個小型“所見即所得”語言:一個C語句最多對應著幾個匯編語句,其它都以庫函數的形式提供。  

所以這就是C是如此流行的語言的原因?  

就像推度多米諾骨牌一樣,下一代的程序跟隨著它的先輩的足跡。用C設計的操作系統通常都有用C設計的系統庫。這些系統庫反過來用于構建高級庫(如OpenGL,或者GTK),這些庫的設計者通常又會采用系統庫所使用的語言。高級庫又被應用級開發者用來設計字處理程序、游戲、媒體播放器等諸如此類。他們多數會選擇采用高級庫所使用的語言來編程。這種模式就這樣如此如此進行...  

為什么是C,而不是另一個高級語言?

C最主要的設計是用于生成可移植代碼,同時保持性能又能最小化腳印,而這本來就是“高級”接口打算在操作系統或者其它程序上發揮的作用。作為一種既穩定又成熟的語言,其特性長期來看未必會消失,而是移植到了大多(如果不是所有)的平臺上。  

例如,C程序能夠編譯運行在這些設備上,包括HP 50g計算器(ARM處理器)、TI-89計算器(68000處理器)、Palm OS Cobalt智能手機(ARM處理器)、原始的iMac(PowerPC)、Arduino(Atmel AVR)和Intel iMac(Intel Core 2 Duo)。幾乎所有流行的編程語言都至少能運行在這些設備的其中一種上,而C可能是唯一可以運行在三種以上的這些設備的編程語言。  

一個最有力的理由是內存分配。不像大多計算機語言,C允許程序員直接寫內存。在C中如結構體、指針和數組,這些設計的目的就是用一種高效且機器無關的方式去構建和操作內存。尤其是,C給出了在數據結構的內存層上的控制方法。此外,動態內存分配是程序員掌控,這必然意味著內存重分配成為了程序元的負擔。而Java和Perl之類的語言則將程序員從對內存分配和指針的擔心之中解救出來。一般而言這是件好事,因為寫高級程序時處理內存一個很容易出錯的過程。然而,當處理低層代碼時,例如操作系統控制一個設備的部分,C提供了一個統一清晰的接口。在其它的高級語言如Java中則沒有這些性能。  

Perl、PHP、Python和Ruby這些語言可能很強大,能支持許多C缺省不支持的特性,而一般這些語言是不能用自己實現的。恰恰相反,這些語言多數最初都是依賴C(或者另一種高性能編程語言)寫成,而且使用之前必須先要移植到新平臺上。  

與所有編程語言一樣,是否優先選擇C語言要視技術和商業需求而定

【編輯推薦】

  1. C語言對象編程構思
  2. C語言中的面向對象思想
  3. C語言中的DIV的用法及DIVAB概念解析
  4. 詳解Linux系統下搭建C語言開發環境
  5. 妙趣橫生的算法(C語言實現)
責任編輯:彭凡 來源: 譯言
相關推薦

2022-11-28 09:58:58

C++開發

2010-01-22 15:14:37

學習C++

2019-11-15 13:10:17

潘石屹Python語言

2012-04-11 09:19:08

Haskell編程

2017-04-05 16:40:45

2015-05-25 15:31:56

C語言學習和使用 C 語言

2021-05-17 08:20:22

職場晉升轉型

2014-05-30 15:56:26

iOS 8WWDC2014

2021-01-26 05:37:08

分庫分表內存

2017-11-21 14:41:29

編程語言Python

2021-03-26 10:04:38

數據結構技術

2016-08-22 13:31:05

前端架構前后端分離

2015-02-26 09:41:50

2022-01-19 22:51:57

設計匿名用戶

2023-12-08 10:59:49

2021-06-21 10:04:12

微軟密碼Arsenault

2017-04-05 18:10:05

R語言開發Ross

2016-09-27 21:25:08

Go語言Ken Thompso

2020-10-14 08:33:23

Prometheus監控體系

2019-07-30 15:50:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品乱码一二三区的特点 | 国产精品色婷婷久久58 | 人人叉| 免费视频99 | 91精品国产91久久久久久最新 | 国产成人短视频在线观看 | 日本久久久影视 | 日韩不卡视频在线观看 | 精品三区| 国产精品一区二区电影 | 日本中文字幕视频 | 欧美一区二区在线看 | 国产高清视频在线 | 91精品国产乱码久久久久久久久 | 国产精品区二区三区日本 | 国产精品久久久久久久久久免费看 | 久久久久久久久91 | 成人欧美一区二区三区在线播放 | 国产一区二区在线免费 | 天天人人精品 | 亚洲一区二区久久 | 午夜成人免费视频 | 日本久久久久久 | 亚洲一区在线观看视频 | 天天干 夜夜操 | 伊人手机在线视频 | 欧美一级片久久 | 国产欧美一区二区在线观看 | 亚洲理论在线观看电影 | 99色播| 99精品欧美一区二区三区 | 亚洲欧美日韩网站 | 日韩精品一区中文字幕 | 毛片在线视频 | 久久成人免费视频 | 日韩精品专区在线影院重磅 | 欧美91| 成人国产精品免费观看视频 | 北条麻妃99精品青青久久 | 天天干免费视频 | 亚洲综合热 |