當前位置:首頁 » 存儲配置 » extern存儲類

extern存儲類

發布時間: 2022-10-04 09:21:57

『壹』 計算機c語言存儲類別為extern型 什麼意思

extern型是外部變數、簡單說就是其他c文件中的變數,你拿過來用要聲明。你也可以定義,供別的文件使用。
我們平時編的簡單的程序只需要1個c文件,但是如果很復雜的程序可能需要十幾個文件。
比如說1個項目分給很多人,每個人完成各自的模塊,要調用別人c文件中的變數,這時就用到了extern。

『貳』 哪位大蝦幫忙梳理一下4種存儲類別(auto,register,extern,static)和局部/全局變數的關系

auto是局部變數,如果你定義一個全局變數為auto存儲類型編譯器就會報錯
resister是寄存器存儲,他的訪問速度快,但單片機中寄存器的數量較少,程序執行過程中一般作為變數的暫存中介,裡面的內容經常會被更改,所以通常是局部變數
extern是外部存儲,一般是在當前文件中聲明,在另外的文件中定義或者使用,一般為全局的
static是靜態存儲,他可以是全局的也可以是局部的,全局變數聲明為static類型時他作用域只在當前文件中,局部變數聲明為static類型時,他的作用域是在當前定義變數的{}內。在C++中static變數一般是整個類的屬性。

『叄』 C語言中函數隱含存儲類型是什麼

函數的隱含存儲類型是extern,按照c語言的原則,函數隱含為全局都可以訪問,因此默認為extern,而auto只用於變數,是變數的隱含存儲類型。

『肆』 C語言中定義數組時,前面的static、auto、extern三種存儲類別有什麼作用

static 有好幾種用法,比如說屏蔽函數聲明,避免污染全局變數表。。。在函數內部則是讓局部變數放在靜態存儲區。。。

『伍』 c中static與extern的區別

這個一樓的回答差了一些哦。
有幾種情況:
首先,extern和static完全不同,extern不能定義一個變數,extern表示的是「已經存在一個變數,但是不在當前的編譯單元內,需要在其他編譯單元中尋找。」static會定義一個變數,但是分成多種情況。
---------------------------------------------------------------------
先說extern 和 變數的關系。

先說只有一個文件(編譯單元)的:
int i=10; //這個是定義一個全局變數,值為10
extern int i=10; //這個是錯誤的,變數已經存在,怎麼賦初值呢?
extern int i; //這個和第一句 int i=10; 可以同時存在在一個文件中。

再說跨文件(多個編譯單元)的:
文件一:(假設這個文件沒有錯誤!!)
int a=10;
文件二:
extern int a; // 這個正確
extern float a; // 這個編譯不會錯,賦值會怎樣呢?
extern int b; //這個找不到
int a=9; //這個出錯,全局變數多次定義
int a; //同上
static int a=9; //這個正確,這個產生一個僅在文件二中有效的全局變數a,初值為9,注意在文件二中將看不到那個值為10的全局變數!!!!

static就是剛才說的最後一種,此外就是函數內的使用了,不再多說了。
特別的,這樣是錯誤的:
a.c:
static int x=10;
b.c:
extern int x; //因為x只在a.c中,b.c中根本看不到x,所以這個extern還是找不到x,因此會在鏈接時報錯。
其他:extern盡量寫到.h文件中,寫到.c里就是錯誤的種子,以後它只能得到苦果!

『陸』 extern 和static區別

static是靜態存儲類型,屬於局部變數,只能用於同一個函數內,在其他函數內使用是錯誤的。extern是外部存儲類型,屬於全局變數,可以用於從他定義開始的後續所有函數內。

假設 在note1.c文件中定義static int A; 那麼在note2.c文件中,是不能用A做為變數名嗎?note2.c不能引用note1.c內的A,但是可以用A做變數名,切記:雖然都是命名為A,但是他們是不同的量

『柒』 這里的extern 存儲類型怎麼用求解釋這道題

extern只是聲明(表示定義在其他處,只是使用聲明表示在這個地方使用。)

xy是全局變數。全局變數從定義處到該源文件結尾所有的函數都可以使用。

而main函數中調用的num函數卻不能使用,因為其在定義x和y的上方,num函數中卻想使用這個x和y。
所以所用關鍵字extern聲明表示x和y不是新定義,而是使用別處的x和y,這樣系統就會查找本源文件和其他源文件(因為extern一般是使用在不同的源文件使用相同 變數的關鍵字)

所以,過程:
a=7,b=5 ---->x=12,y=2----調用num函數----->聲明使用的是x=12,y=2這兩個變數,而不是新定義xy新變數---->修改x=15+10=25,y=15-10=5.---->所以最後x為25 y 為5

『捌』 C語言中,函數的隱含存儲類別是 auto 還是 extern,為什麼兩種答案我都看到過

函數的存儲類型指的是其他文件模塊可否訪問,其類別可以是extern或static。

static是指該函數只能被本源程序文件道中的模塊訪問。extern是指可被本源程序文件外的模塊訪問。

C語言中函數的存儲類型隱含為版全局的,因此默認為extern。

函數內定義的變數,默權認作用域在本函數內,即其類型是auto。

(8)extern存儲類擴展閱讀:

C語言中提供了存儲說明符auto、register、extern、static說明的四種存儲類別。四種存儲類別說明符有兩種存儲期:自動存儲期和靜態存儲期。

其中auto和register對應自動存儲期。具有自動存儲期的變數在進入聲明該變數的程序塊時被建立,它在該程序塊活動時存在,退出該程序塊時撤銷。在函數內部定義的變數成為局部變數。在某些C語言教材中,局部變數稱為自動變數,這就與使用可選關鍵字auto定義局部變數這一作法保持一致。

extern用在變數聲明中常常有這樣一個作用:要在*.c文件中引用另一個文件中的一個全局的變數,那就應該放在*.h中用extern來聲明這個全局變數。

extern用於變數的用法:

1、extern int a;//聲明一個全局變數a

2、int a; //定義一個全局變數a

3、extern int a =0 ;//定義一個全局變數a 並給初值。一旦給予賦值,一定是定義,定義才會分配存儲空間。(注意:經過測試在GCC中,這樣定義變數是不能通過編譯的,而在VS2013可以)

『玖』 C語言中有哪些存儲類型

四種變數存儲類型。說明符如下:
auto static extern register
一、auto
auto稱為自動變數。

局部變數是指在函數內部說明的變數(有時也稱為自動變數)。用關鍵字auto進
行說明, 當auto省略時, 所有的非全程變數都被認為是局部變數, 所以auto實際上
從來不用。

二、static
static稱為靜態變數。根據變數的類型可以分為靜態局部變數和靜態全程變數。
1. 靜態局部變數
它與局部變數的區別在於: 在函數退出時, 這個變數始終存在, 但不能被其它
函數使用, 當再次進入該函數時, 將保存上次的結果。其它與局部變數一樣。
2. 靜態全程變數
Turbo C將大型程序分成若干獨立模塊文件分別編譯, 然後將所有模塊
的目標文件連接在一起, 從而提高編譯速度, 同時也便於軟體的管理和維護。靜態
全程變數就是指只在定義它的源文件中可見而在其它源文件中不可見的變數。它與
全程變數的區別是: 全程變數可以再說明為外部變數(extern), 被其它源文件使用,
而靜態全程變數卻不能再被說明為外部的, 即只能被所在的源文件使用。
三、extern
extern稱為外部變數。為了使變數除了在定義它的源文件中可以使用外, 還要
被其它文件使用。因此, 必須將全程變數通知每一個程序模塊文件, 此時可用
extern來說明。
四、register
register稱為寄存器變數。

『拾』 Extern外部型變數的存儲特點

1.
自動變數(auto) 語言規定,函數內凡未加存儲類型說明的變數均視為自動變數.自動變數具有以下特點: (1)自動變數的作用域僅局限於定義該變數的個體內.在函數中定義的自動變 量,只在該函數內有效.在復合語句中定義的自動變數只在該復合語句中有效. (2)自動變數屬於動態存儲方式,只有在使用它時,即定義該變數的函數被調 用時才給它分配存儲單元。
2.
外部變數(extern) 需要注意的是,外部變數的說明要應用在全局變數上.對全局變數進行外部 變數說明後,可以擴大其作用域.例如,在同一程序文件中,如果全局變數的定 義在後,而引用它的函數在前,只需將該變數說明為extern,則位置靠前的函數 就會引用它.又如,當一個文件分散在幾個程序文件中時,若一個程序文件中已 經定義了某個全局變數。
3.
靜態變數(static) 靜態變數屬於靜態存儲方式,但是屬於靜態存儲方式的不一定是靜態變數。

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:642
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:368
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:88
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:310
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:794
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:346
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:213
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:818
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:367
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:594