亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1610 | 回復(fù): 0
打印 上一主題 下一主題

C語(yǔ)言的發(fā)展 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-12-17 16:38 |只看該作者 |倒序?yàn)g覽
設(shè)計(jì)哲學(xué)
C語(yǔ)言是一個(gè)
程序語(yǔ)言
,設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的
機(jī)器碼
以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語(yǔ)言。C語(yǔ)言也很適合搭配
匯編語(yǔ)言
來(lái)使用。盡管C語(yǔ)言提供了許多低級(jí)處理的功能,但仍然保持著良好
跨平臺(tái)
的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語(yǔ)言程序可在許多計(jì)算機(jī)平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(
微控制器
或稱MCU)以及
超級(jí)計(jì)算機(jī)
等作業(yè)平臺(tái)。
特色
  • C語(yǔ)言是一個(gè)有結(jié)構(gòu)化程序設(shè)計(jì)、具有變量作用域(variable scope)以及遞歸功能的過(guò)程式語(yǔ)言。
  • 傳遞參數(shù)是以值傳遞(Pass-by-value),也可以通過(guò)指針來(lái)傳遞參數(shù)(Pass-by-address)。
  • 不同的變量類型可以用結(jié)構(gòu)體(struct)組合在一起。
  • 只有32個(gè)保留字(reserved keywords),使變量、函數(shù)命名有更多彈性。
  • 部份的變量類型可以轉(zhuǎn)換,例如整形和字符變量。
  • 通過(guò)指針(pointer),C語(yǔ)言可以容易的對(duì)存儲(chǔ)器進(jìn)行低級(jí)控制。
  • 編譯預(yù)處理(preprocessor)讓C語(yǔ)言的編譯更具有彈性。
    歷史
    早期發(fā)展
    C語(yǔ)言的第一次發(fā)展在1969年到1973年之間。之所以被稱為“C”是因?yàn)镃語(yǔ)言的很多特性是由一種更早的被稱為
    B語(yǔ)言
    的編程語(yǔ)言中發(fā)展而來(lái)。早期操作系統(tǒng)的內(nèi)核大多由
    匯編語(yǔ)言
    組成,隨著C語(yǔ)言的發(fā)展,C語(yǔ)言已經(jīng)可以用來(lái)編寫操作系統(tǒng)的內(nèi)核。
    1973年
    ,
    Unix
    操作系統(tǒng)

    內(nèi)核
    正式用C語(yǔ)言改寫,這是C語(yǔ)言第一次應(yīng)用在操作系統(tǒng)的內(nèi)核編寫上。
    K&R C
    1978年
    ,丹尼斯·里奇(Dennis Ritchie)和Brian Kernighan合作出版了《
    C程序設(shè)計(jì)語(yǔ)言
    》的第一版。書中介紹的C語(yǔ)言標(biāo)準(zhǔn)也被C語(yǔ)言程序設(shè)計(jì)師稱作“K&R C”,第二版的書中也包含了一些ANSI C的標(biāo)準(zhǔn)。K&R C主要介紹了以下特色:
  • 結(jié)構(gòu)(struct)類型
  • 長(zhǎng)整數(shù)(long int)類型
  • 無(wú)符號(hào)整數(shù)(unsigned int)類型
  • 把運(yùn)算符=+和=-改為+=和-=。因?yàn)?+和=-會(huì)使得編譯器不知道用戶要處理i = +10還是i =- 10,使得處理上產(chǎn)生混淆。
    即使在后來(lái)ANSI C標(biāo)準(zhǔn)被提出的許多年后,K&R C仍然是許多編譯器的最低標(biāo)準(zhǔn)要求,許多老舊的編譯仍然運(yùn)行K&R C的標(biāo)準(zhǔn)。
    ANSI C 和 ISO C
    主條目:
    ANSI C
    1989年,C語(yǔ)言被 ANSI 標(biāo)準(zhǔn)化(ANSI X3.159-1989)。標(biāo)準(zhǔn)化的一個(gè)目的是擴(kuò)展K&R C。這個(gè)標(biāo)準(zhǔn)包括了一些新特性。在K&R出版后,一些新特性被
    非官方
    地加到C語(yǔ)言中。
  • void 函數(shù)
  • 函數(shù)返回 struct 或 union 類型
  • void * 數(shù)據(jù)類型
    在ANSI標(biāo)準(zhǔn)化自己的過(guò)程中,一些新的特性被加了進(jìn)去。ANSI也規(guī)定一套了標(biāo)準(zhǔn)函數(shù)庫(kù)。ANSI
    ISO

    國(guó)際標(biāo)準(zhǔn)化組織
    )成立 ISO/IEC JTC1/SC22/WG14 工作組,來(lái)規(guī)定國(guó)際標(biāo)準(zhǔn)的C語(yǔ)言。通過(guò)對(duì)ANSI標(biāo)準(zhǔn)的少量修改,最終通過(guò)了 ISO 9899:1990。隨后,ISO標(biāo)準(zhǔn)被 ANSI 采納。
    傳統(tǒng)C語(yǔ)言到ANSI/ISO標(biāo)準(zhǔn)C語(yǔ)言的改進(jìn)包括:
  • 增加了真正的標(biāo)準(zhǔn)庫(kù)
  • 新的預(yù)處理命令與特性
  • 函數(shù)原型允許在函數(shù)申明中指定參數(shù)類型
  • 一些新的關(guān)鍵字,包括 const、volatile 與 signed
  • 寬字符、寬字符串與字節(jié)多字符
  • 對(duì)約定規(guī)則、聲明和類型檢查的許多小改動(dòng)與澄清
    WG14工作小組之后又于
    1995年
    ,對(duì)1985年頒布的標(biāo)準(zhǔn)做了兩處技術(shù)修訂(缺陷修復(fù))和一個(gè)補(bǔ)充(擴(kuò)展)。下面是 1995 年做出的所有修改:
  • 3 個(gè)新的標(biāo)準(zhǔn)庫(kù)頭文件 iso646.h、wctype.h 和 wchar.h
  • 幾個(gè)新的記號(hào)與預(yù)定義宏,用于對(duì)國(guó)際化提供更好的支持
  • printf/sprintf 函數(shù)一系列新的格式代碼
  • 大量的
    函數(shù)
    和一些
    類型

    常量
    ,用于
    多字節(jié)字符

    寬字節(jié)字符

    C99
    在ANSI的標(biāo)準(zhǔn)確立后,C語(yǔ)言的規(guī)范在一段時(shí)間內(nèi)沒有大的變動(dòng),然而C++在自己的標(biāo)準(zhǔn)化建立過(guò)程中繼續(xù)發(fā)展壯大。《標(biāo)準(zhǔn)修正案一》在1995年
    為C語(yǔ)言建立了一個(gè)新標(biāo)準(zhǔn),但是只修正了一些C89標(biāo)準(zhǔn)中的細(xì)節(jié)和增加更多更廣得國(guó)際字符集支持。不過(guò),這個(gè)標(biāo)準(zhǔn)引出了1999年ISO
    9899:1999的發(fā)表。它通常被成為C99。C99被ANSI于
    2000年
    3月采用。
    在C99中包括的特性有:
  • 對(duì)編譯器限制增加了,比如源程序每行要求至少支持到 4095 字節(jié),變量名函數(shù)名的要求支持到 63 字節(jié)(extern 要求支持到 31)
  • 預(yù)處理增強(qiáng)了。例如:


    • 支持取可變參數(shù) #define Macro(...) __VA_ARGS__
    • 使用

      的時(shí)候,參數(shù)如果不寫,

      里用 #,## 這樣的東西會(huì)擴(kuò)展成空串。(以前會(huì)出錯(cuò)的)
    • 支持 // 行注釋(這個(gè)特性實(shí)際上在C89的很多編譯器上已經(jīng)被支持了)

  • 增加了新關(guān)鍵字 restrict, inline, _Complex, _Imaginary, _Bool
    • 支持 long long, long double _Complex, float _Complex 這樣的類型

  • 支持   %: %:%: ,等等奇怪的符號(hào)替代,D&E 里提過(guò)這個(gè)
  • 支持了不定長(zhǎng)的數(shù)組。數(shù)組的長(zhǎng)度就可以用變量了。聲明類型的時(shí)候呢,就用 int a
  • 這樣的寫法。不過(guò)考慮到效率和實(shí)現(xiàn),這玩意并不是一個(gè)新類型。所以就不能用在全局里,或者 struct union 里面,如果你用了這樣的東西,goto 語(yǔ)句就受限制了。
  • 變量聲明不必放在語(yǔ)句塊的開頭,for 語(yǔ)句提倡這么寫 for(int i=0;i
  • 當(dāng)一個(gè)類似結(jié)構(gòu)的東西需要臨時(shí)構(gòu)造的時(shí)候,可以用(type_name){xx,xx,xx} 這有點(diǎn)像 C++ 的構(gòu)造函數(shù)
  • 初始化結(jié)構(gòu)的時(shí)候現(xiàn)在可以這樣寫:
    struct {int a[3],b;} hehe[] =  { [0].a = {1}, [1].a = 2 };
    struct {int a, b, c, d;} hehe =  { .a = 1, .c = 3, 4, .b = 5}  // 3,4 是對(duì) .c,.d 賦值的
  • 字符串里面,\u 支持 unicode 的字符
  • 支持 16 進(jìn)制的浮點(diǎn)數(shù)的描述
  • 所以 printf scanf 的格式化串多支持了 ll / LL(VC6 里用的 I64)對(duì)應(yīng)新的 long long 類型。
  • 浮點(diǎn)數(shù)的內(nèi)部數(shù)據(jù)描述支持了新標(biāo)準(zhǔn),這個(gè)可以用 #pragma 編譯器指定
  • 除了已經(jīng)有的 __line__ __file__ 以外,又支持了一個(gè) __func__ 可以得到當(dāng)前的函數(shù)名
  • 對(duì)于非常數(shù)的表達(dá)式,也允許編譯器做化簡(jiǎn)
  • 修改了對(duì)于/% 處理負(fù)數(shù)上的定義,比如老的標(biāo)準(zhǔn)里 -22 / 7 = -3, -22 % 7 = -1 而現(xiàn)在 -22 / 7 = -4, -22 % 7 = 6
  • 取消了不寫函數(shù)返回類型默認(rèn)就是 int 的規(guī)定
  • 允許 struct 定義的最后一個(gè)數(shù)組寫做 [] 不指定其長(zhǎng)度描述
  • const const int i;將被當(dāng)作 const int i;處理
  • 增加和修改了一些標(biāo)準(zhǔn)頭文件,比如定義 bool 的  定義一些標(biāo)準(zhǔn)長(zhǎng)度的 int 的
    定義復(fù)數(shù)的  定義寬字符的
    有點(diǎn)泛型味道的數(shù)學(xué)函數(shù)  跟浮點(diǎn)數(shù)有關(guān)的 。
    里多了一個(gè) va_copy 可以復(fù)制 ... 的參數(shù)。 里多了個(gè) struct tmx 對(duì) struct tm
    做了擴(kuò)展
  • 輸入輸出對(duì)寬字符還有長(zhǎng)整數(shù)等做了相應(yīng)的支持

    本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/9861/showart_2124132.html
  • 您需要登錄后才可以回帖 登錄 | 注冊(cè)

    本版積分規(guī)則 發(fā)表回復(fù)

      

    北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年舉報(bào)專區(qū)
    中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
    感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP