當前位置:首頁 > 公眾號精選 > 華清遠見武漢中心
[導讀]C 語言 C語言是一種通用的、面向過程的高級編程語言。。UNIX操作系統(tǒng),C編輯器,和幾乎所有的UNIX應用程序都是用C語言編寫的。C語言最早的原型是ALGOL 60。 1963 年,劍橋大學將其發(fā)展成為 CPL。 1967 年,劍橋大學的 Matin Richards 對 CPL 語言進行了簡化,

C 語言

C語言是一種通用的、面向過程的高級編程語言。。UNIX操作系統(tǒng),C編輯器,和幾乎所有的UNIX應用程序都是用C語言編寫的。C語言最早的原型是ALGOL 60。

1963 年,劍橋大學將其發(fā)展成為 CPL。

1967 年,劍橋大學的 Matin Richards 對 CPL 語言進行了簡化,產(chǎn)生了 BCPL 語言。

1970 年,美國 AT&T 貝爾實驗室的 Ken Thompson 將 BCPL 進行了修改,并取名叫做 B 語言,意思是提取 CPL 的精華,并用 B 語言寫了第一個 UNIX 系統(tǒng)。

1973年,貝爾實驗室的Dennis Ritchie在 BCPL 和 B 語言的基礎上設計出了一種新的語言,取 BCPL 中的第二個字母為名,這就是大名鼎鼎的 C 語言。

隨后不久,UNIX 的內(nèi)核和應用程序全部用 C 語言改寫,從此,C 語言成為 UNIX 環(huán)境下使用最廣泛的主流編程語言。


C 語言的版本


K&R C:1978 年,語言之父和UNIX 之父Dennis Ritchie和 Brian Kernighan合作推出了《C 程序設計語言》的第一版,書末的參考指南一節(jié)給出了當時 C 語言的完整定義,成為那時 C 語言事實上的標準,人們稱之為 K&R C。從這一年以后,C 語言被移植到了各種機型上,并受到了廣泛的支持,使 C 語言在當時的軟件開發(fā)中幾乎一統(tǒng)天下。


C89(ANSI C):隨著 C 語言在多個領(lǐng)域的推廣、應用,一些新的特性不斷被各種編譯器實現(xiàn)并添加進來。于是,建立一個新的 “無歧義的、與具體平臺無關(guān)的 C 語言定義” 成為越來越重要的事情。1983 年,ASC X3成立了一個專門的技術(shù)委員會 J11,負責起草關(guān)于 C 語言的標準草案。1989 年,草案被 ANSI 正式通過成為美國國家標準,被稱為 C89 標準。


C90(ISO C):隨后,《C 程序設計語言》第二版開始出版發(fā)行,書中內(nèi)容根據(jù)ANSI C(C89)進行了更新。1990年,在ISO/IEC JTC1/SC22/WG14的努力下,ISO 批準了 ANSI C 成為國際標準。于是 ISO C(又稱為 C90)誕生了。除了標準文檔在印刷編排上的某些細節(jié)不同外,ISO C(C90)和 ANSI C(C89)在技術(shù)上完全一樣。


C95:之后,ISO 在 1994、1996 年 分別出版了 C90 的技術(shù)勘誤文檔,更正了一些印刷錯誤,并在1995 年通過了一份 C90 的技術(shù)補充,對 C90 進行了微小的擴充,經(jīng)過擴充后的 ISO C 被稱為 C95。


C99:1999 年,ANSI 和 ISO 又通過了最新版本的 C 語言標準和技術(shù)勘誤文檔,該標準被稱為 C99。GCC 中指定此版本時所用參數(shù)有兩種寫法:

-std=c99

-std=iso9899:1999


C11:2011 年發(fā)布了當前最新的 C 語言標準為 C11,指 ISO 標準 ISO/IEC 9899:2011。此 C11 標準未完成之前的草案,被叫做 C1X。GCC 中指定此版本時所用參數(shù)有兩種寫法:

-std=c11

-std=iso9899:2011


ISO 的 C 語言標準,定義了對于 C 語言的兩種實現(xiàn):

  1. 支持 C 語言的所有庫函數(shù)。

  2. 支持 C 語言的基本庫函數(shù)(+ 各自版本對應的實現(xiàn))。


△基本庫函數(shù)包括:<float.h>,<limits.h>,<stdarg.h>,<stddef.h>

△ AMD1對應的是:<iso646.h>

△ C99對應的是:<stdbool.h>,<stdint.h>

△ C11對應的是:<stdalign.h>,<stdnoreturn.h>



C 語言的特點

△ C 是一門中級語言。它把高級語言的數(shù)據(jù)結(jié)構(gòu)、語句等特性與低級語言(匯編語言)的實用性結(jié)合起來。C 語言可以像匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元。

△ C 是一門結(jié)構(gòu)式語言。結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分割化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護以及調(diào)試。C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。

△ C 語言功能齊全。具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。

△ C 語言具有繪圖能力強,可移植性,并具備很強的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件、三維、二維圖形和動畫,支持多種顯示器和驅(qū)動器。


C 語言的優(yōu)點

△ 既有高級語言的結(jié)構(gòu)和編程環(huán)境,又有類似于低級語言(匯編語言)的系統(tǒng)資源操縱能力。目標代碼的執(zhí)行效率只比匯編低 10~20% ,比其他高級語言高,適合解決有實時要求的問題;

△ 有豐富的運算符、數(shù)據(jù)類型和表達式,對程序設計有良好的適應性;

△ 支持以函數(shù)為基礎結(jié)構(gòu)化程序設計、多文件構(gòu)成及文件獨立編譯,適合大型復雜程序設計;

△ 語言簡潔、緊湊,使用方便、靈活,書寫形式自由;

△ 代碼及可執(zhí)行程序的可移植性好。


C 語言的缺點

△ C 語言它的最大的缺點就是,如果你的項目很復雜,大量的開發(fā)人員互相之間需要更新大段代碼時,C 語言可能會使事情變得異常麻煩。因為 C 是在面向?qū)ο蠓椒餍兄伴_發(fā)的,這大大降低了 C 語言復雜設計的可能性。但這不代表 C 語言做不了大項目,世界上有太多的經(jīng)典都是用 C 語言完成的,只是說這里面的復雜度會更高。

△ 輸入輸出相對很多語言都較為復雜。對于字符串的處理,只能通過字符數(shù)組實現(xiàn)。繪圖操作較為復雜。

△ C 語言的缺點主要表現(xiàn)在數(shù)據(jù)的封裝性上,這一點使得 C 在數(shù)據(jù)的安全性上有很大缺陷,這也是 C 和 C++ 的一大區(qū)別。

△ C 語言的語法限制不太嚴格,對變量的類型約束不嚴格(弱類型語言),影響程序的安全性,對數(shù)組下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。

△ 指針是 C 語言的一大特色,可以說是 C 語言優(yōu)于其它高級語言的一個重要原因。就是因為它有指針,可以直接進行靠近硬件的操作,但是 C 的指針操作也給它帶來了很多不安全的因素。C++ 在這方面做了很好的改進,在保留了指針操作的同時又增強了安全性。Java 取消了指針操作,提高了安全性。

△ 類型檢查機制相對較弱、缺少支持代碼重用的語言結(jié)構(gòu)。


搭建編程環(huán)境

△ 操作系統(tǒng):CentOS7

△ 編輯器:VIM

△ 編譯器:GCC


安裝 GCC

查看 GCC 版本

編程

編譯

NOTE:因為 Linux 下可執(zhí)行文件的后綴僅僅是一種形式,所以可執(zhí)行文件也可以不帶后綴。

運行


基本語法

C 程序的文件類型

△ .h:頭文件,用于聲明宏、變量、函數(shù),定義類等

△ .c:C 程序源碼文件

△ .cpp:C++ 程序源碼文件

C 語言程序是由函數(shù)定義類型定義組成的。因此一個源文件就是一系列的函數(shù)和類型。每個函數(shù)都可以調(diào)用其他函數(shù)或調(diào)用自身(遞歸),可以使用任何已經(jīng)聲明的或內(nèi)建(C 標準庫)的數(shù)據(jù)類型。

C 語言代碼是從前往后依次執(zhí)行的,所以你可以后定義,但必須先聲明。你還可以調(diào)用其他庫提供的函數(shù),使用庫中提供的數(shù)據(jù)類型,這也是 C 中多層級系統(tǒng)的復雜性不斷增長的根源。

C 程序主要包括以下部分

△ Tokens(令牌):C 程序由各種令牌組成,令牌可以是關(guān)鍵字、標識符、常量、字符串值,或者是一個符號。

這五個令牌分別是:

△ 注釋:使用 // 或 /* ... */ 作為單行或多行注釋。

△ 函數(shù):完成特定任務的與語句、表達式的集合。

△ 語句、表達式:一行代碼。表達式(Expression)總有值,而語句(Statement)不總有。

△ 標識符:自定義的變量、函數(shù)的命名標識,一個標識符以字母 A-Z 或 a-z 或下劃線 _ 開始,后跟若干個字母、下劃線和數(shù)字(0-9)。大小寫敏感,使用駝峰風格。

△ 關(guān)鍵字:C 中的保留字,這些保留字不能作為標識符。

△ 換行符:使用 ; 作為程序換行符(語句結(jié)束符),表明一個邏輯實體的結(jié)束。

△ 空格:只包含空格的行,被稱為空白行,可能帶有注釋,C 編譯器會完全忽略它。

①程序的第一行 #include <stdio.h> 是預處理器指令,告訴 C 編譯器在預處理過程中要包含 stdio.h 文件。

②下一行 int main() 是主函數(shù),程序從這里開始執(zhí)行。

③下一行 /*...*/ 是注釋內(nèi)容,在預處理過程會被忽略。

④下一行 printf(...) 是 C 中的標準函數(shù),會在屏幕上顯示消息 “Hello, World!”。

⑤下一行 return 0 終止 main() 函數(shù),并返回值 0。




往期干貨筆記


干貨筆記 | 程序“猿”の進階寶典


干貨筆記 | 嵌入式學習路線你知道嗎?


“地獄模式”求職季 還不看看攻略?


干貨筆記 | 超實用的必備網(wǎng)站 快來劃重點


這么多小伙伴加入我們 你也快來呀

       

       

微信 搜一搜

華清遠見武漢中心

點分享

點點贊

點在看

免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉