欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

iOS培訓(xùn)之C語言語法劃時(shí)代趨勢(shì)歷程

2016-04-07 15:04:08 1539瀏覽

         C語言誕生于1970年,當(dāng)時(shí)在AT&T實(shí)驗(yàn)室由Dennis Ritchie主導(dǎo)開發(fā)的。據(jù)說當(dāng)時(shí)僅用了一周的時(shí)間就做好了C語言編譯器,所以盡管C語言從90年正式納入ISO標(biāo)準(zhǔn)委員會(huì),其編號(hào)為ISO/IEC 9899。盡管經(jīng)歷了C99與C11標(biāo)準(zhǔn)的修改歷程,但為了向前兼容,有一些比較古怪的特性依然被保留。

         現(xiàn)在除了C語言,還誕生了許許多多的其它高級(jí)編程語言,而且大多都具有面向?qū)ο蟮奶匦?。而C語言以其間接、靈活、干練而得到了系統(tǒng)級(jí)應(yīng)用開發(fā)的首選編程語言,尤其是嵌入式系統(tǒng)上應(yīng)用更多。然而,為了使原本已經(jīng)設(shè)計(jì)精良的C語言能在整個(gè)語法體系上更具完備性,并且更與時(shí)俱進(jìn),我這里暢想一下二十一世紀(jì)的新C語言應(yīng)該考慮改良的語法特性,我暫時(shí)先把這個(gè)劃時(shí)代的C語言稱為CNeo。這里不考慮與現(xiàn)有C語言的語法兼容,但一定能做到二進(jìn)制兼容。CNeo的源文件后綴名暫時(shí)用.cn來表示。

iOS培訓(xùn)之C語言語法劃時(shí)代趨勢(shì)歷程

         1、真正的布爾類型:在C99標(biāo)準(zhǔn)中就引入了_Bool關(guān)鍵字,并引入了頭文件,使得C語言也有了布爾類型。但其骨子里仍然沒有真正的布爾類型。所以在CNeo中真正引入布爾類型——bool,并且它是一個(gè)原生類型,不需要這樣的頭文件。除此之外,在整個(gè)語法體系中只有布爾類型表達(dá)式才能作為if、while語句的表達(dá)式。

         2、更規(guī)范的整數(shù)與浮點(diǎn)類型:現(xiàn)在對(duì)整數(shù)類型的定義比較雜亂。由于早些時(shí)候iOS開發(fā)培訓(xùn)之C語言中使用int、short、char、long、long long等來表示一個(gè)整數(shù)對(duì)象的長(zhǎng)度的。這里,對(duì)于不同系統(tǒng)環(huán)境,對(duì)這些類型的長(zhǎng)度可能各不相同。比如在一個(gè)8位單片機(jī)中,一個(gè)int才1個(gè)字節(jié);一個(gè)long類型為2個(gè)字節(jié);而在現(xiàn)在32位系統(tǒng)中,一個(gè)int為4個(gè)字節(jié);一個(gè)long也為4個(gè)字節(jié);而在64位系統(tǒng)中又復(fù)雜了,在VC中,long仍然為4字節(jié),但在GCC、Clang編譯器中,long則為8個(gè)字節(jié)。正由于這種系統(tǒng)不確定性,所以在C99標(biāo)準(zhǔn)中引入了頭文件,其中定義了int8_t、int16_t、int32_t、int64_t以及它們對(duì)應(yīng)的無符號(hào)形式來指明當(dāng)前整型對(duì)象的長(zhǎng)度。

         3、移除結(jié)構(gòu)體與聯(lián)合體內(nèi)嵌套定義命名結(jié)構(gòu)體和聯(lián)合體類型:當(dāng)前在結(jié)構(gòu)體和聯(lián)合體內(nèi)嵌套定義命名的結(jié)構(gòu)體與聯(lián)合體類型會(huì)使得其作用域變得怪異,所以我這里的想法是索性把這個(gè)語法特性移除,但是能定義匿名結(jié)構(gòu)體與匿名聯(lián)合體。

         4、引入當(dāng)前Objective-C已經(jīng)使用的module機(jī)制:這個(gè)在很大程度上能防止名字空間的污染。

         5、將數(shù)組類型類別完全獨(dú)立出來。我們知道,在C語言中,一個(gè)數(shù)組對(duì)象在作為往往會(huì)被當(dāng)作為一個(gè)指針,而且數(shù)組對(duì)象標(biāo)識(shí)符可直接被隱式地轉(zhuǎn)換為指針。這個(gè)特性據(jù)說是當(dāng)時(shí)C編譯器對(duì)數(shù)組類別實(shí)現(xiàn)有些難度而導(dǎo)致的。在CNeo中,一個(gè)數(shù)組對(duì)象就是一個(gè)數(shù)組對(duì)象,它不會(huì)被(也不能被)隱式或顯式地轉(zhuǎn)換為一個(gè)指針類型。所以,一個(gè)數(shù)組可以給另一個(gè)數(shù)組賦值以及初始化。

         6、可能引入完全對(duì)象化的屬性訪問:這個(gè)特性如上述博文里介紹的,將所有類型賦予一些基本的只讀屬性可訪問。比如,對(duì)于基本數(shù)據(jù)類型有size,對(duì)于數(shù)組有size和count,其中size用于獲取當(dāng)前對(duì)象所占的存儲(chǔ)空間大小,而count則表示數(shù)組的元素個(gè)數(shù)。每個(gè)對(duì)象都有address,用于獲取其所在的地址;每個(gè)指針對(duì)象都有memory屬性用于獲取其所指對(duì)象的內(nèi)容,這里memory是可讀寫的(除非memory的類型用const修飾則只能是只讀的)。

 查看更多關(guān)于“iOS培訓(xùn)資訊”的相關(guān)文章>>

標(biāo)簽:

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國(guó)免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠(chéng)科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部