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

Chinaunix

標題: C語言的發(fā)展 [打印本頁]

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

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

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

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

    寬字節(jié)字符

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

  • 增加了新關(guān)鍵字 restrict, inline, _Complex, _Imaginary, _Bool

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

    本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/9861/showart_2124132.html




    歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2