日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

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

C 語(yǔ)言

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

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

1967 年,劍橋大學(xué)的 Matin Richards 對(duì) CPL 語(yǔ)言進(jìn)行了簡(jiǎn)化,產(chǎn)生了 BCPL 語(yǔ)言。

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

1973年,貝爾實(shí)驗(yàn)室的Dennis Ritchie在 BCPL 和 B 語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了一種新的語(yǔ)言,取 BCPL 中的第二個(gè)字母為名,這就是大名鼎鼎的 C 語(yǔ)言。

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


C 語(yǔ)言的版本


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


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


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


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


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

-std=c99

-std=iso9899:1999


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

-std=c11

-std=iso9899:2011


ISO 的 C 語(yǔ)言標(biāo)準(zhǔn),定義了對(duì)于 C 語(yǔ)言的兩種實(shí)現(xiàn):

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

  2. 支持 C 語(yǔ)言的基本庫(kù)函數(shù)(+ 各自版本對(duì)應(yīng)的實(shí)現(xiàn))。


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

△ AMD1對(duì)應(yīng)的是:<iso646.h>

△ C99對(duì)應(yīng)的是:<stdbool.h>,<stdint.h>

△ C11對(duì)應(yīng)的是:<stdalign.h>,<stdnoreturn.h>



C 語(yǔ)言的特點(diǎn)

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

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

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

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


C 語(yǔ)言的優(yōu)點(diǎn)

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

△ 有豐富的運(yùn)算符、數(shù)據(jù)類型和表達(dá)式,對(duì)程序設(shè)計(jì)有良好的適應(yīng)性;

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

△ 語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活,書寫形式自由;

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


C 語(yǔ)言的缺點(diǎn)

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

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

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

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

△ 指針是 C 語(yǔ)言的一大特色,可以說是 C 語(yǔ)言優(yōu)于其它高級(jí)語(yǔ)言的一個(gè)重要原因。就是因?yàn)樗兄羔?,可以直接進(jìn)行靠近硬件的操作,但是 C 的指針操作也給它帶來(lái)了很多不安全的因素。C++ 在這方面做了很好的改進(jìn),在保留了指針操作的同時(shí)又增強(qiáng)了安全性。Java 取消了指針操作,提高了安全性。

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


搭建編程環(huán)境

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

△ 編輯器:VIM

△ 編譯器:GCC


安裝 GCC

查看 GCC 版本

編程

編譯

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

運(yùn)行


基本語(yǔ)法

C 程序的文件類型

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

△ .c:C 程序源碼文件

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

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

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

C 程序主要包括以下部分

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

這五個(gè)令牌分別是:

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

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

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

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

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

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

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

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

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

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

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

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




往期干貨筆記


干貨筆記 | 程序“猿”の進(jìn)階寶典


干貨筆記 | 嵌入式學(xué)習(xí)路線你知道嗎?


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


干貨筆記 | 超實(shí)用的必備網(wǎng)站 快來(lái)劃重點(diǎn)


這么多小伙伴加入我們 你也快來(lái)呀

       

       

微信 搜一搜

華清遠(yuǎn)見武漢中心

點(diǎn)分享

點(diǎn)點(diǎn)贊

點(diǎn)在看

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

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