最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

六星云課堂:C語(yǔ)言的4種存儲(chǔ)類型,入門C語(yǔ)言必看!

2022-09-03 09:18 作者:六星云課堂  | 我要投稿

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

auto

register

static

extern

一、auto 存儲(chǔ)類

auto 存儲(chǔ)類是所有局部變量默認(rèn)的存儲(chǔ)類。

{intmount;autointmonth;}

上面的實(shí)例定義了兩個(gè)帶有相同存儲(chǔ)類的變量,auto 只能用在函數(shù)內(nèi),即 auto 只能修飾局部變量。

二、register 存儲(chǔ)類

register 存儲(chǔ)類用于定義存儲(chǔ)在寄存器中而不是 RAM 中的局部變量。這意味著變量的最大尺寸等于寄存器的大?。ㄍǔJ且粋€(gè)詞),且不能對(duì)它應(yīng)用一元的 '&' 運(yùn)算符(因?yàn)樗鼪]有內(nèi)存位置)。

{registerintmiles;}

寄存器只用于需要快速訪問的變量,比如計(jì)數(shù)器。還應(yīng)注意的是,定義 'register' 并不意味著變量將被存儲(chǔ)在寄存器中,它意味著變量可能存儲(chǔ)在寄存器中,這取決于硬件和實(shí)現(xiàn)的限制。

三、static 存儲(chǔ)類

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

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

全局聲明的一個(gè) static 變量或方法可以被任何函數(shù)或方法調(diào)用,只要這些方法出現(xiàn)在跟 static 變量或方法同一個(gè)文件中。

以下實(shí)例演示了 static 修飾全局變量和局部變量的應(yīng)用:

實(shí)例:

#include<stdio.h> /* 函數(shù)聲明 */voidfunc1(void);staticintcount=10;/* 全局變量 - static 是默認(rèn)的 */intmain(){ while(count--) { func1(); }return0; } voidfunc1(void){/* 'thingy' 是 'func1' 的局部變量 - 只初始化一次 * 每次調(diào)用函數(shù) 'func1' 'thingy' 值不會(huì)被重置。 */staticintthingy=5; thingy++; printf(" thingy 為 %d , count 為 %d\n", thingy, count); }

實(shí)例中 count 作為全局變量可以在函數(shù)內(nèi)使用,thingy 使用 static 修飾后,不會(huì)在每次調(diào)用時(shí)重置。

可能您現(xiàn)在還無(wú)法理解這個(gè)實(shí)例,因?yàn)槲乙呀?jīng)使用了函數(shù)和全局變量,這兩個(gè)概念目前為止還沒進(jìn)行講解。即使您現(xiàn)在不能完全理解,也沒有關(guān)系,后續(xù)的章節(jié)我們會(huì)詳細(xì)講解。當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

thingy 為6, count 為9thingy 為7, count 為8thingy 為8, count 為7thingy 為9, count 為6thingy 為10, count 為5thingy 為11, count 為4thingy 為12, count 為3thingy 為13, count 為2thingy 為14, count 為1thingy 為15, count 為0

四、extern 存儲(chǔ)類

extern 存儲(chǔ)類用于提供一個(gè)全局變量的引用,全局變量對(duì)所有的程序文件都是可見的。當(dāng)您使用 extern 時(shí),對(duì)于無(wú)法初始化的變量,會(huì)把變量名指向一個(gè)之前定義過的存儲(chǔ)位置。

當(dāng)您有多個(gè)文件且定義了一個(gè)可以在其他文件中使用的全局變量或函數(shù)時(shí),可以在其他文件中使用 extern 來(lái)得到已定義的變量或函數(shù)的引用??梢赃@么理解,extern 是用來(lái)在另一個(gè)文件中聲明一個(gè)全局變量或函數(shù)。

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

第一個(gè)文件:main.c

實(shí)例:

#include<stdio.h> intcount ;externvoidwrite_extern();intmain(){ count =5; write_extern(); }

第二個(gè)文件:support.c

實(shí)例:

#include<stdio.h> externintcount;voidwrite_extern(void){ printf("count is %d\n", count); }

在這里,第二個(gè)文件中的 extern 關(guān)鍵字用于聲明已經(jīng)在第一個(gè)文件 main.c 中定義的 count?,F(xiàn)在 ,編譯這兩個(gè)文件,如下所示:

$ gcc main.c support.c

這會(huì)產(chǎn)生a.out可執(zhí)行程序,當(dāng)程序被執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

count is5

以上就是本次分享的全部?jī)?nèi)容,想學(xué)習(xí)更多C語(yǔ)言技巧,歡迎持續(xù)關(guān)注六星云課堂!

六星云課堂:C語(yǔ)言的4種存儲(chǔ)類型,入門C語(yǔ)言必看!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
太白县| 万安县| 蒙自县| 宝应县| 榆树市| 抚顺县| 曲阳县| 昌都县| 鹿泉市| 常熟市| 剑河县| 景洪市| 隆林| 米泉市| 商河县| 临安市| 麟游县| 凤翔县| 乌兰浩特市| 曲麻莱县| 正蓝旗| 佛坪县| 杭锦后旗| 贵州省| 遵义县| 张家界市| 江油市| 华安县| 新昌县| 德令哈市| 长宁县| 武汉市| 青海省| 蒲江县| 岐山县| 泰顺县| 太谷县| 青神县| 上饶县| 吉首市| 大石桥市|