官术网_书友最值得收藏!

4.4 標(biāo)識(shí)符

C++/C的標(biāo)識(shí)符是由字母、數(shù)字和下畫(huà)線(_)組成的字符序列,用來(lái)標(biāo)識(shí)一個(gè)程序元素,如變量、函數(shù)、宏、類型名等。標(biāo)識(shí)符可以任意長(zhǎng),但是標(biāo)準(zhǔn)C語(yǔ)言規(guī)定,編譯器只取前31個(gè)字符作為有效的標(biāo)識(shí)符,而標(biāo)準(zhǔn)C++則取前255個(gè)字符作為有效的標(biāo)識(shí)符。

每一個(gè)標(biāo)識(shí)符都具有如下的幾個(gè)屬性:值、值的類型、名字、存儲(chǔ)類型、作用域范圍、連接類型(可見(jiàn)性)、生存期等。例如,C函數(shù),函數(shù)名其實(shí)就是函數(shù)體代碼在內(nèi)存中的首地址,在編譯時(shí)就可以確定其值,因此是一個(gè)常量,這是它的值;值的類型就是函數(shù)指針類型;存儲(chǔ)類型默認(rèn)為extern,除非聲明為static;作用域范圍為文件作用域;連接類型默認(rèn)為外連接,除非聲明為static;生存期為永久(即靜態(tài))。其他的幾個(gè)屬性我們將在后面章節(jié)適當(dāng)?shù)牡胤皆敿?xì)介紹。

【提示4-9】: (1)避免使用前導(dǎo)“_”和“__”來(lái)定義你自己的標(biāo)識(shí)符,因?yàn)檎Z(yǔ)言及其實(shí)現(xiàn)使用它來(lái)定義一些內(nèi)部名稱或預(yù)定義的宏,因此如果你也使用它,就有可能造成命名沖突。

(2)給標(biāo)識(shí)符起一個(gè)有意義的名字,要能夠“顧名思義”。如果是變量,最好能體現(xiàn)出它的值的類型(如使用類型名縮寫(xiě)作為前綴)。這樣的標(biāo)識(shí)符具有“自說(shuō)明”能力,具體參見(jiàn)本書(shū)第11章。

(3)使用長(zhǎng)的標(biāo)識(shí)符名字并不會(huì)增大可執(zhí)行代碼的體積,因此不要使用過(guò)于簡(jiǎn)單的名字,但也不要使用過(guò)長(zhǎng)的名字。標(biāo)識(shí)符名字的長(zhǎng)度應(yīng)該遵循“用最短的名字包含最多的信息量”的原則。

主站蜘蛛池模板: 海盐县| 离岛区| 崇阳县| 来宾市| 瓦房店市| 九江市| 正安县| 博客| 会理县| 凌源市| 上杭县| 咸丰县| 万源市| 昌江| 漳浦县| 安图县| 宁强县| 名山县| 连城县| 苗栗县| 环江| 揭西县| 陆河县| 安吉县| 垣曲县| 西城区| 张家界市| 望江县| 泸州市| 青河县| 长春市| 绥芬河市| 信宜市| 钟祥市| 临澧县| 海阳市| 锦州市| 永年县| 茌平县| 阿荣旗| 拜城县|