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

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

多個(gè)源程序組成程序編譯問題

2019-11-10 22:52:28
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在所有函數(shù)之外定義聲明的變量被默認(rèn)為靜態(tài)存儲(chǔ)類型并被視為全局變量。全局變量可以被同一個(gè)文件中位于變量聲明之后定義的任何函數(shù)訪問。全局變量還可以被其他文件中的函數(shù)訪問,若要做到這點(diǎn),必須在使用全局變量的每一個(gè)文件中對(duì)這些全局變量進(jìn)行聲明。例如,若一個(gè)文件想利用另一個(gè)文件中聲明的全局變量flag,那么該文件中必須包含以下語(yǔ)句在使用flag之前:

extern int flag;

編譯器將通知鏈接程序,本文件中出現(xiàn)了對(duì)變量flag的未定值的引用,如果鏈接程序找不到變量flag的定義,那么就會(huì)發(fā)出一條出錯(cuò)信息,并且不生成可執(zhí)行文件。如果鏈接程序找到了正確的全局變量的定義,那么就以變量flag的位置來(lái)確定那些未定值的引用。 函數(shù)原型也可以將它的作用域擴(kuò)展到定義它的文件之外(函數(shù)原型并不需要extern說(shuō)明符)。為了達(dá)到這個(gè)目的,只需簡(jiǎn)單的將函數(shù)原型包含在每一個(gè)想調(diào)用它的文件中,然后將這些文件一起編譯即可(include)。函數(shù)原型會(huì)告訴編譯器其指定的函數(shù)要么在本文件后面定義,要么在另外一個(gè)文件中定義。同樣,編譯器并不嘗試確定對(duì)這個(gè)函數(shù)的引用,鏈接器來(lái)完成。如果鏈接器找不到,則會(huì)發(fā)出一條錯(cuò)誤信息。 實(shí)際可能需要將一個(gè)全局變量或者一個(gè)函數(shù)的作用域限定在定義它的文件之內(nèi),將存儲(chǔ)類型說(shuō)明符static應(yīng)用于全局變量或函數(shù)時(shí),就可以阻止在本文件之外定義的函數(shù)訪問它們。這被稱為內(nèi)部鏈接(internal linkage)。在定義前沒有加上static的全局變量或者函數(shù)就是外部鏈接(external linkage)–如果在其他文件中包含了適當(dāng)?shù)穆暶骰蚝瘮?shù)原型,那么在這些文件中是可以被訪問的。 全局變量的聲明:

static const double PI = 3.14159;

說(shuō)明符static通常用在僅能被特定文件中的函數(shù)所調(diào)用的實(shí)用函數(shù)中。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 延津县| 白河县| 皋兰县| 广东省| 米林县| 林州市| 志丹县| 星子县| 民勤县| 满洲里市| 奉节县| 瑞丽市| 安龙县| 萝北县| 邵武市| 松溪县| 同心县| 眉山市| 长乐市| 禄劝| 红河县| 横山县| 大新县| 射洪县| 南江县| 榆树市| 名山县| 云浮市| 县级市| 桐梓县| 石门县| 西林县| 台山市| 五华县| 赤水市| 奈曼旗| 滦南县| 长泰县| 克什克腾旗| 安宁市| 白河县|