<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 134,comments - 22,trackbacks - 0
    C語言由Dennis M. Ritchie在1973年設(shè)計(jì)和實(shí)現(xiàn)。從那以后使用者逐漸增加。到1978年Ritchie和Bell實(shí)驗(yàn)室的另一位程序?qū)<襅ernighan合寫了著名的《The C Programming Language》,將C語言推向全世界,許多國家都出了譯本,國內(nèi)有一些C語言書就是這本書的翻譯或者編譯。由這本書定義的C語言后來被人們稱作 K&R C。

    隨著C語言使用得越來越廣泛,出現(xiàn)了許多新問題,人們?nèi)找鎻?qiáng)烈地要求對C語言進(jìn)行標(biāo)準(zhǔn)化。這個標(biāo)準(zhǔn)化的工作在美國國家標(biāo)準(zhǔn)局(ANSI)的框架中進(jìn)行(1983-1988),最終結(jié)果是1988年10月頒布的ANSI標(biāo)準(zhǔn)X3.159-1989,也就是后來人們所說的ANSI C標(biāo)準(zhǔn)。由這個標(biāo)準(zhǔn)定義的C語言被稱作ANSI C。

    ANSI C標(biāo)準(zhǔn)很快被采納為國際標(biāo)準(zhǔn)和各國的標(biāo)準(zhǔn)。國際標(biāo)準(zhǔn)為ISO/IEC 9899-1990,中國國家標(biāo)準(zhǔn)GB/T 15272-94是國際ISO標(biāo)準(zhǔn)的中文翻譯。

    ANSI C標(biāo)準(zhǔn)化工作的一個主要目標(biāo)是清除原來C語言中的不安全、不合理、不精確、不完善的東西。由此也產(chǎn)生了ANSI C與K&R C之間的差異。從總體上看,這些差異反應(yīng)的是C語言走向完善、走向成熟。



    --------------------------------------------------------------------------------

    ANSI C 對 K&R C 的修訂
    (本段根據(jù)《C Programming Language》和C語言標(biāo)準(zhǔn)整理。不求完整,希望列出最常見的差異)
      
      

    對于源文件內(nèi)部的標(biāo)識符,有效的最小長度擴(kuò)充到31個字符。文件間連接時,標(biāo)識符的最小有效長度仍然為6個字符。(許多實(shí)現(xiàn)都支持更大的長度)
    增加了幾個新關(guān)鍵字:void,const,volatile,signed,enum。拋棄了老關(guān)鍵字entry。
    在換意字符 \ 之后寫非規(guī)定的序列,其作用確定為無定義。
    規(guī)定8和9都不是八進(jìn)制數(shù)的合法字符。
    引進(jìn)了數(shù)的后綴字符:整數(shù)的U和L,浮點(diǎn)數(shù)的F和L。
    規(guī)定連續(xù)出現(xiàn)的字符串常量將被拼接在一起。
    引進(jìn)了“寬字符”的概念。
    將字符也確定為帶符號(signed)和不帶符號(unsigned)的。
    丟棄了long float(原來作為double的同義詞)。
    引入了void類型,用 (void*) 表示通用指針的類型(過去人們通常用 (char*))。
    對算術(shù)類型規(guī)定了最小表示范圍。要求每個C語言系統(tǒng)用頭文件(<limits.h>;和<float.h>;)說明實(shí)現(xiàn)中的具體規(guī)定。
    引進(jìn)了枚舉定義enum。
    采用了來自C++的類型修飾符,如const。
    規(guī)定字符串常量是不可修改的。
    改變了算術(shù)類型的隱含轉(zhuǎn)換規(guī)則。
    刪去了一些過時賦值運(yùn)算符,如 =+。規(guī)定賦值運(yùn)算符都是基本單詞,如 += 之間不能有空格分隔。
    引進(jìn)了與一元 - 運(yùn)算符對應(yīng)的一元 + 運(yùn)算符。
    指向函數(shù)的指針可以直接放在函數(shù)調(diào)用的位置,不必顯式地寫間接操作。
    允許結(jié)構(gòu)地整體賦值,作為函數(shù)參數(shù)和返回值傳遞。
    允許將取地址運(yùn)算符作用于數(shù)組,得到的是指向有關(guān)數(shù)組的指針。
    標(biāo)準(zhǔn)規(guī)定 sizeof 運(yùn)算符的返回值為 size_t 類型(某個無符號整型),這一類型在標(biāo)準(zhǔn)頭文件<stddef.h>;里定義。同時在那里定義的還有 ptrdiff_t 類型,它是指針減運(yùn)算的結(jié)果類型。
    規(guī)定取地址運(yùn)算符不能作用于 register 變量。
    規(guī)定移位表達(dá)式的類型為其左運(yùn)算對象的類型。
    允許建立指向過數(shù)組末元素一個位置的指針,以及對它的算術(shù)運(yùn)算和關(guān)系運(yùn)算。
    (從C++)引進(jìn)了包含參數(shù)類型的函數(shù)原型概念,引進(jìn)了變長參數(shù)表函數(shù)的概念。仍允許老的形式,但僅僅是作為過時形式保留。
    標(biāo)準(zhǔn)規(guī)定任何局部聲明的作用域僅僅是當(dāng)前的塊(復(fù)合語句)。
    規(guī)定函數(shù)參數(shù)作為加入函數(shù)體(復(fù)合語句)的聲明,因此不能用變量聲明去覆蓋。
    有關(guān)名字空間的規(guī)定:所有結(jié)構(gòu)、聯(lián)合和枚舉標(biāo)記在一個名字空間里,標(biāo)號是另一個名字空間。
    聯(lián)合變量在定義時也可以初始化,規(guī)定初始化其第一個成分。
    自動結(jié)構(gòu)、聯(lián)合和數(shù)組也可以初始化,但限制其初始化方式(其中只能包含常量表達(dá)式)。
    帶大小描述的字符數(shù)組也可以用大小與之相同的字符串常量初始化(結(jié)束的 \0 被刪除)。
    開關(guān)語句的控制表達(dá)式和case標(biāo)號可以是任何整型的(包括字符類型)。
    posted on 2009-05-18 11:03 何克勤 閱讀(541) 評論(0)  編輯  收藏 所屬分類: C/C++
    主站蜘蛛池模板: 亚洲网红精品大秀在线观看| 我的小后妈韩剧在线看免费高清版| 日韩精品福利片午夜免费观着| 亚洲精品亚洲人成人网| 一本久久免费视频| 免费很黄很色裸乳在线观看| 卡1卡2卡3卡4卡5免费视频| 亚洲综合偷自成人网第页色| 国产大片91精品免费观看不卡| 色偷偷噜噜噜亚洲男人| 欧洲精品成人免费视频在线观看| 久久久久se色偷偷亚洲精品av| 久久WWW免费人成一看片| 亚洲国产成+人+综合| 成年网站免费视频A在线双飞| 亚洲一区二区三区亚瑟| 在线a人片天堂免费观看高清| 亚洲欧美aⅴ在线资源| 国产成人无码区免费A∨视频网站| 亚洲日韩在线中文字幕综合| 亚洲av无码成人精品区在线播放| 亚洲国产精品久久| 四虎在线成人免费网站| 亚洲天堂2017无码中文| 看全色黄大色大片免费久久| 亚洲AV无码专区亚洲AV伊甸园 | 日本高清免费不卡在线| 国产亚洲人成在线播放| 在线日韩日本国产亚洲| 免费A级毛片在线播放| 2020亚洲男人天堂精品| 又粗又大又长又爽免费视频| A国产一区二区免费入口| 亚洲视频中文字幕| 青青草国产免费久久久91| 香蕉国产在线观看免费| 精品亚洲麻豆1区2区3区| 午夜影视在线免费观看| 中国黄色免费网站| 亚洲中文字幕久久精品无码A| 免费一级毛片不卡在线播放|