鏈接屬性,存儲類型總結

鏈接屬性

標識符的鏈接屬性決定如何處理在不同文件中出現(xiàn)的標識符

鏈接屬性一共有三種:

  1. external 外部鏈接屬性 -- 屬于external的標識符不論聲明多少次栈顷,位于幾個源文件都表示同一個實體
  2. internal 內(nèi)部鏈接屬性 -- 屬于internal的標識符在同一個源文件內(nèi)的所有聲明中都指向同一個實體逆日,但位于不同源文件的多個生命則分屬不同的實體
  3. none 無鏈接屬性 -- 該標識符的多個聲明被當做獨立不同的實體

只要變量并非聲明于代碼塊或函數(shù)定義內(nèi)部,這個變量的鏈接屬性默認為external

關鍵字staticextern可以修改鏈接屬性萄凤。如果聲明本身具有external鏈接屬性室抽,在前面加上static可以使這個聲明的鏈接屬性變?yōu)閕nternal, 這樣可以防止變量被其他源文件調(diào)用

  • static關鍵字支隊默認鏈接屬性為external的聲明才有改變鏈接屬性的效果(比如,對某一個代碼塊內(nèi)部聲明的變量加上static并不會改變該變量的鏈接屬性蛙卤,改變的只是這個變量的存儲類型狠半,因為這個變量聲明在函數(shù)內(nèi)部,其默認鏈接屬性不是external)

  • extern關鍵字用于源文件中某個標識符的第一次聲明時颤难,它指定該標識符具有external鏈接屬性神年,但是如果用于該標識符的第二次或以后的聲明時,它不會更改第一次聲明所指定的鏈接屬性, 例子:

    static int i; //internal鏈接屬性
    int func() {
        extern int i; //并沒有更改上面的i的鏈接屬性行嗤,這里聲明的i會隱藏上面聲明的i
    }

存儲類型

變量的存儲類型由它的聲明位置所決定

  • 任何在代碼塊之外聲明的變量總是存儲于靜態(tài)內(nèi)存中已日,即不屬于堆棧的內(nèi)存,這類變量被稱為靜態(tài)變量栅屏,靜態(tài)變量在程序運行之前創(chuàng)建飘千,在程序的整個執(zhí)行期間始終存在,它始終保持原先的值栈雳,除非給它賦值新的值或程序結束

靜態(tài)變量如果不顯示指定其初始值护奈,靜態(tài)變量將初始化為0

  • 在代碼塊內(nèi)部聲明的變量存儲于堆棧中,如果給一個位于代碼塊內(nèi)部的變量加上static關鍵字哥纫,可以將這個變量改為靜態(tài)變量
  • 關鍵字register可以指示將代碼塊內(nèi)部的變量的存儲在機器的硬件寄存器而不是內(nèi)存中霉旗,這類變量成為寄存器變量,一般來說蛀骇,寄存器變量比存儲在內(nèi)存的變量訪問效率要高厌秒,但這并不意味著可以將每個變量都聲明為register,如果有太多register變量,編譯器只會選取前幾個實際存儲于寄存器

static關鍵字總結

  1. static用于函數(shù)聲明或者位于代碼塊之外的變量聲明時擅憔, static用于修改鏈接屬性鸵闪,從external改為internal
  2. static用于代碼塊內(nèi)部的變量時,sttaic用于修改變量的存儲類型暑诸,將變量修改為靜態(tài)變量蚌讼,但不改變鏈接屬性
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市个榕,隨后出現(xiàn)的幾起案子啦逆,更是在濱河造成了極大的恐慌,老刑警劉巖笛洛,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異乃坤,居然都是意外死亡苛让,警方通過查閱死者的電腦和手機沟蔑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狱杰,“玉大人瘦材,你說我怎么就攤上這事》禄” “怎么了食棕?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長错沽。 經(jīng)常有香客問我簿晓,道長,這世上最難降的妖魔是什么千埃? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任憔儿,我火速辦了婚禮,結果婚禮上放可,老公的妹妹穿的比我還像新娘谒臼。我一直安慰自己,他們只是感情好耀里,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布蜈缤。 她就那樣靜靜地躺著,像睡著了一般冯挎。 火紅的嫁衣襯著肌膚如雪底哥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天织堂,我揣著相機與錄音叠艳,去河邊找鬼。 笑死易阳,一個胖子當著我的面吹牛附较,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播潦俺,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拒课,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了事示?” 一聲冷哼從身側(cè)響起早像,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肖爵,沒想到半個月后卢鹦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡劝堪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年冀自,在試婚紗的時候發(fā)現(xiàn)自己被綠了揉稚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡熬粗,死狀恐怖搀玖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情驻呐,我是刑警寧澤灌诅,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站含末,受9級特大地震影響猜拾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜答渔,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一关带、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沼撕,春花似錦宋雏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至笼沥,卻和暖如春蚪燕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奔浅。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工馆纳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人汹桦。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓鲁驶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舞骆。 傳聞我的和親對象是個殘疾皇子钥弯,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)督禽,斷路器脆霎,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法狈惫,內(nèi)部類的語法睛蛛,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,625評論 18 399
  • 想要成功谁不,就先從你的心理素質(zhì)鍛煉起。很多時候徽诲,我們每個人的原始差別是不大的刹帕,最大的區(qū)別就在于從小各自培養(yǎng)起來的心理...
    happyzhu閱讀 1,372評論 0 1
  • 聶離點了點頭,那可是億級的獸潮谎替,他們必須從現(xiàn)在開始做好準備偷溺。 楊欣面色一凜,道:“我明白了钱贯,這件事情我會安排下去的...
    im喵小姐閱讀 772評論 0 1
  • 從12年畢業(yè)以來就意識到寫作能力對于一個人非常重要挫掏,并想要去通過每天的寫作練習逐漸的提高自己的寫作能力,但是現(xiàn)實是...
    劉軍亮閱讀 662評論 0 3