真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C語(yǔ)言的命名空間

C語(yǔ)言也有命名空間,可分位4類(lèi)命名空間。

目前創(chuàng)新互聯(lián)建站已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、三江侗網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

4類(lèi)命名空間:

  1. 所有的標(biāo)簽(label)都屬于同一個(gè)命名空間。說(shuō)明:①在同一個(gè)函數(shù)內(nèi),你的標(biāo)簽不能相同。②在同一個(gè)函數(shù)內(nèi),標(biāo)簽可以和其他變量名稱(chēng)相同。因?yàn)樗鼈兯鶎俚拿臻g不同。

  2. struct、enumunion的名稱(chēng),在 C99 中稱(chēng)之為 tag,所有的 tag 屬于同一個(gè)命名空間。也就是說(shuō),如果你已經(jīng)聲明struct A { int a };?就不能再聲明union A{ int a };了。
    之所以讓所有的 tag 組成一個(gè)命名空間,由于 tag 前面總是帶struct,enumunion關(guān)鍵字,所以編譯器可以將它們與其他的標(biāo)識(shí)符區(qū)分開(kāi)。

  3. structunion的成員屬于一個(gè)命名空間,而且是相互獨(dú)立的。例如:如果你已經(jīng)聲明struct A { int a };?,其成員的名稱(chēng)為a,你仍然可以聲明?struct B{ int a };或者union B{ int a };。之所以讓structunion的成員各自成為一個(gè)命名空間,是因?yàn)樗鼈兊某蓡T訪(fǎng)問(wèn)時(shí),需要通過(guò) “.”或”->”運(yùn)算符,而不會(huì)單獨(dú)使用,所以編譯器可以將它們與其他的標(biāo)識(shí)符區(qū)分開(kāi)。由于枚舉類(lèi)型enum的成員可以單獨(dú)使用,所以枚舉類(lèi)型的成員不在這一名稱(chēng)空間內(nèi)。

  4. 其他所有的標(biāo)識(shí)符,屬于同一個(gè)名稱(chēng)空間。包括變量名、函數(shù)名、函數(shù)參數(shù),宏定義、typedef的類(lèi)型名、enum的成員 等等。注意:如果標(biāo)識(shí)符出現(xiàn)重名的情況,宏定義會(huì)覆蓋所有其它標(biāo)識(shí)符,這是因?yàn)樗陬A(yù)處理階段而不是編譯階段處理。除了宏定義之外其它類(lèi)別的標(biāo)識(shí)符,處理規(guī)則是:內(nèi)層作用域會(huì)隱藏掉外層作用域的標(biāo)識(shí)符。

平時(shí)寫(xiě) C 程序從來(lái)沒(méi)有想過(guò) C 語(yǔ)言還有命名空間這事,有什么用呢?在《 C 語(yǔ)言接口與實(shí)現(xiàn)》這本神作中,大量使用typedef struct T *T;這種形式(其中T就是struct T *)的用法,遵循一定的約定,利用 C 語(yǔ)言的這種簡(jiǎn)單的命令規(guī)則也可以獲得一些好處,使代碼更精巧,可讀性更好。

更多技術(shù)分享:Virbox 技術(shù)博客


分享文章:C語(yǔ)言的命名空間
本文來(lái)源:http://weahome.cn/article/jddpop.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部