C++存儲類

存儲類定義 C++ 程序中變量/函數(shù)的范圍(可見性)和生命周期翠储。這些說明符放置在它們所修飾的類型之前爹袁。下面列出 C++ 程序中可用的存儲類:

auto

register

static

extern

mutable

thread_local (C++11)

auto 存儲類:

auto關(guān)鍵字用于兩種情況:聲明變量時(shí)根據(jù)初始化表達(dá)式自動推斷該變量的類型辆亏、聲明函數(shù)時(shí)函數(shù)返回值的占位符严嗜。

register 存儲類:

register存儲類用于定義存儲在寄存器中而不是 RAM 中的局部變量倒淫。這意味著變量的最大尺寸等于寄存器的大械锱亍(通常是一個(gè)詞)抖韩,且不能對它應(yīng)用一元的 '&' 運(yùn)算符(因?yàn)樗鼪]有內(nèi)存位置)。

static 存儲類:

static存儲類指示編譯器在程序的生命周期內(nèi)保持局部變量的存在疫铜,而不需要在每次它進(jìn)入和離開作用域時(shí)進(jìn)行創(chuàng)建和銷毀茂浮。因此,使用 static 修飾局部變量可以在函數(shù)調(diào)用之間保持局部變量的值壳咕。

static 修飾符也可以應(yīng)用于全局變量席揽。當(dāng) static 修飾全局變量時(shí),會使變量的作用域限制在聲明它的文件內(nèi)谓厘。

在 C++ 中幌羞,當(dāng) static 用在類數(shù)據(jù)成員上時(shí),會導(dǎo)致僅有一個(gè)該成員的副本被類的所有對象共享竟稳。

extern 存儲類:

extern存儲類用于提供一個(gè)全局變量的引用属桦,全局變量對所有的程序文件都是可見的熊痴。當(dāng)您使用 'extern' 時(shí),對于無法初始化的變量地啰,會把變量名指向一個(gè)之前定義過的存儲位置愁拭。

當(dāng)您有多個(gè)文件且定義了一個(gè)可以在其他文件中使用的全局變量或函數(shù)時(shí),可以在其他文件中使用extern來得到已定義的變量或函數(shù)的引用亏吝。可以這么理解盏混,extern是用來在另一個(gè)文件中聲明一個(gè)全局變量或函數(shù)蔚鸥。

extern 修飾符通常用于當(dāng)有兩個(gè)或多個(gè)文件共享相同的全局變量或函數(shù)的時(shí)候。

mutable 存儲類:

mutable說明符僅適用于類的對象许赃,這將在本教程的最后進(jìn)行講解止喷。它允許對象的成員替代常量。也就是說混聊,mutable 成員可以通過 const 成員函數(shù)修改弹谁。

thread_local 存儲類:

使用 thread_local 說明符聲明的變量僅可在它在其上創(chuàng)建的線程上訪問。 變量在創(chuàng)建線程時(shí)創(chuàng)建句喜,并在銷毀線程時(shí)銷毀预愤。 每個(gè)線程都有其自己的變量副本。

thread_local 說明符可以與 static 或 extern 合并咳胃。

可以將 thread_local 僅應(yīng)用于數(shù)據(jù)聲明和定義植康,thread_local 不能用于函數(shù)聲明或定義。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末展懈,一起剝皮案震驚了整個(gè)濱河市销睁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌存崖,老刑警劉巖冻记,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異来惧,居然都是意外死亡冗栗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門违寞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贞瞒,“玉大人,你說我怎么就攤上這事趁曼【” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵挡闰,是天一觀的道長乒融。 經(jīng)常有香客問我掰盘,道長,這世上最難降的妖魔是什么赞季? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任愧捕,我火速辦了婚禮,結(jié)果婚禮上申钩,老公的妹妹穿的比我還像新娘次绘。我一直安慰自己,他們只是感情好撒遣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布邮偎。 她就那樣靜靜地躺著,像睡著了一般义黎。 火紅的嫁衣襯著肌膚如雪禾进。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天廉涕,我揣著相機(jī)與錄音泻云,去河邊找鬼。 笑死狐蜕,一個(gè)胖子當(dāng)著我的面吹牛宠纯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播馏鹤,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼征椒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了湃累?” 一聲冷哼從身側(cè)響起勃救,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎治力,沒想到半個(gè)月后蒙秒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宵统,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年晕讲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片马澈。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瓢省,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痊班,到底是詐尸還是另有隱情勤婚,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布涤伐,位于F島的核電站馒胆,受9級特大地震影響缨称,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜祝迂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一睦尽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧型雳,春花似錦当凡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柑晒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間眷射,已是汗流浹背匙赞。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留妖碉,地道東北人涌庭。 一個(gè)月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像欧宜,于是被迫代替她去往敵國和親坐榆。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

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

  • 重新系統(tǒng)學(xué)習(xí)下C++冗茸;但是還是少了好多知識點(diǎn)席镀;socket;unix夏漱;stl豪诲;boost等; C++ 教程 | 菜...
    kakukeme閱讀 19,885評論 0 50
  • 在C語言中挂绰,程序內(nèi)變量或函數(shù)的作用域和壽命是由其存儲類決定的屎篱。每個(gè)變量都有其生命周期,或存儲其值的上下文葵蒂。函數(shù)和變...
    西行客要閉關(guān)修煉閱讀 663評論 0 1
  • C++基礎(chǔ) 定義常量的兩種簡單方式:const和#defineC++的修飾符類型有signed, unsigned...
    尋風(fēng)之夢閱讀 620評論 0 0
  • 注:原文地址 前言:下文是很基礎(chǔ)的C++語法的 notes交播,只是個(gè)人學(xué)習(xí) C++時(shí),針對自己不熟悉的知識點(diǎn)做的零散...
    cfanr閱讀 1,334評論 2 3
  • 這些天我們班感冒發(fā)燒的同學(xué)很多践付,有的同學(xué)還請假了秦士,我這兩天也感冒了! 昨天晚上荔仁,我寫完作業(yè)伍宦,覺得有...
    小王子WXN閱讀 210評論 0 1