国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言的標(biāo)準(zhǔn)

2023-06-06 12:11:12
字體:
供稿:網(wǎng)友

(1)K&R C

開始的很多年,C語言沒有國際標(biāo)準(zhǔn),只有一個事實標(biāo)準(zhǔn)——1978年Brian Kemighan和Dennis Ritchie編寫的《C程序設(shè)計語言》(The C Programming Language)一書,通常稱其為K&R C或經(jīng)典C。該書的附錄“C參考手冊”(C Reference Manual)成為了C語言的實現(xiàn)指南,但是書中缺少對庫函數(shù)標(biāo)準(zhǔn)的描述,一般以Unix實現(xiàn)的庫函數(shù)所為事實標(biāo)準(zhǔn)。需要說明的是,因為C語言的語法成分簡單,很多基本功能(例如I/O語句)都是靠庫函數(shù)來實現(xiàn)的。所以,C語言比其它高級語言更依賴于庫函數(shù)。

(2)C90

1983年ANSI(American National Standards Institute 美國國家標(biāo)準(zhǔn)協(xié)會)設(shè)立了一個X3J11小組,著手進行C語言的標(biāo)準(zhǔn)化。并最終于1989年推出ANSI C (ANSI X3.159-1989),1990年它又成為國際標(biāo)準(zhǔn)ISO C(ISO/IEC 9899:1990 Programming languages – C,程序設(shè)計語言——C),原來叫做ANSI C或ISO C,現(xiàn)在通常稱其為C89或C90。

C90對K&R C的主要改變是,增加了函數(shù)原型(prototype),強調(diào)對函數(shù)的輸入?yún)?shù)進行嚴(yán)ge的類型檢查;允許將結(jié)構(gòu)本身作為參數(shù)傳遞給函數(shù)(原來只允許傳地址);并補充定義了C語言的標(biāo)準(zhǔn)函數(shù)庫。增加了關(guān)鍵字:const(常型變量)、enum(枚舉類型)、signed(有符號的,例如signed char)、void(空/無,可用于函數(shù)返回值和形參、通用指針類型)、volatile(易變變量,防止編譯器錯誤的優(yōu)化)等。還增加了預(yù)處理指令:#elif(else if)、#error(錯誤,強制編譯停止)、#line(修改當(dāng)前行號和源文件名)、#pragma(附注/編譯指令,編譯器定義的與實現(xiàn)有關(guān)的指令)。

(3)C99

對C90的修訂工作開始于1994年,在ISO C++(1998)標(biāo)準(zhǔn)推出之后,ISO又于1999年12月16日,推出了C語言標(biāo)準(zhǔn)的第2版:ISO/IEC 9899:1999 Programming languages – C(程序設(shè)計語言——C),一般稱其為C99。

C99主要的修訂目標(biāo)有三點:①支持國際化編程,引入了支持國際字符集Unicode的數(shù)據(jù)類型和庫函數(shù);②修正原有版本的明顯缺點。如整數(shù)的移植方法,例如int8_t、int16_t、int32_t和int64_t等類型;③針對科學(xué)和工程的需要,改進計算的實用性。例如添加了復(fù)數(shù)類型和新數(shù)學(xué)函數(shù)。

C99對C89/C90的具體修改有:①增加了C++的//注釋風(fēng)ge:原來C語言只支持多行注釋:/*……*/,C99現(xiàn)在也識別單行注釋:// ……。②增加了關(guān)鍵字:inline(內(nèi)聯(lián)函數(shù))、restrict(限制)、_Bool(布爾類型)、_Complex(復(fù)數(shù))、_Imaginary(虛數(shù))。③增加了數(shù)據(jù)類型:(unsigned) long long [int](64位整數(shù))(對應(yīng)的打印輸出格式為%lld或%llu)。④定義了可移植整數(shù)類型,如:int8_t、int16_t、int32_t、int64_t,uint8_t、uint16_t、uint32_t、uint64_t;intptr_t、uintptr_t。以及表示對應(yīng)類型常量的方法,如INT8_C(128)、INT32_C(1234)。⑤增加了浮點常量的十六進制格式:p或P表示后跟二進制指數(shù)(的十進制值)。例如:0xa.1cp10 = (10 + 1/16 + 12/256) * 210 = 10352.0。⑥增加了浮點數(shù)的十六進制打印格式符:%a或%A(代替十進制的%e或%E)、%La或%LA(代替十進制的%Le或%LE)。⑦可指定初始化的條目(未被初始化的條目全被置為0),如:int days[12] = {31, 28, [4] = 31, 30, 31, [1] = 29};⑧支持變長數(shù)組(即可用變量來定義數(shù)組的大小),如:float a[n], a2[m][n];⑨允許在代碼塊的任何地方定義變量(似C++)。⑩允許在結(jié)構(gòu)的最后定義一個大小可伸縮的彈性數(shù)組成員,可以用于結(jié)構(gòu)指針,根據(jù)允許情況來動態(tài)分配內(nèi)存。但是,C99增加的新特性中,有許多當(dāng)前的C++標(biāo)準(zhǔn)還不支持。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 定兴县| 吕梁市| 台安县| 宕昌县| 凤庆县| 扶绥县| 安义县| 尼勒克县| 三台县| 濉溪县| 大埔区| 务川| 阿瓦提县| 民县| 大关县| 定远县| 罗山县| 祁东县| 通化县| 昌吉市| 西贡区| 丰台区| 阳西县| 蕉岭县| 深水埗区| 华亭县| 长泰县| 定西市| 南木林县| 富阳市| 开平市| 惠安县| 武强县| 垫江县| 山丹县| 文化| 石门县| 都安| 屏南县| 商河县| 遂溪县|