1、c語言中的存儲類型有static 、auto、extern、及register,函數默認的存儲類型應該是extern,意思是具有外部鏈接性的。一般來說,會通過extern來聲明函數。
專注于為中小企業提供成都做網站、成都網站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業寧城免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了上千余家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
2、比如下面的代碼,在1.c中定義一個函數,函數的聲明寫在1.h頭文件中,在2.c中通過添加1.h的頭文件,來聲明及調用函數f()。
//1.c
void f() { ; }
//1.h
extern void f();
//2.c
#include "1.h"
int main() { f();}
函數的存儲類型指的是其他文件模塊可否訪問,其類別可以是extern或static。
static是指該函數只能被本源程序文件道中的模塊訪問。extern是指可被本源程序文件外的模塊訪問。
C語言中函數的存儲類型隱含為版全局的,因此默認為extern。
函數內定義的變量,默權認作用域在本函數內,即其類型是auto。
擴展資料:
在C語言中,提供了四種存儲類型的存儲說明符:auto、Register、Extern和static。這四個存儲類別說明符有兩個存儲術語:自動存儲術語和靜態存儲術語。
“自動”和“寄存器”對應的是自動存儲周期。具有自動存儲周期的變量在進入聲明變量的塊時被創建,在塊活動時存在,在塊退出時被撤銷。在函數中定義的變量成為局部變量。在一些C教科書中,局部變量被稱為automatic,這與使用可選關鍵字auto定義局部變量的做法一致。
Extern通常用于變量聲明:在*中的另一個文件中引用全局變量。在*.h中應該使用extern來聲明全局變量。
函數的存儲類型指的是其他文件模塊可否訪問,其類別可以是extern或static。
static是指該函數只能被本源程序文件道中的模塊訪問。extern是指可被本源程序文件外的模塊訪問。
C語言中函數的存儲類型隱含為版全局的,因此默認為extern。
函數內定義的變量,默權認作用域在本函數內,即其類型是auto。
擴展資料:
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可以)
參考資料來源:百度百科——extern
參考資料來源:百度百科——auto
分享標題:c語言函數的存儲分類 c語言中5種基本數據類型的存儲
文章位置:http://vcdvsql.cn/article28/ddccdjp.html
成都網站建設公司_創新互聯,為您提供網站策劃、外貿建站、搜索引擎優化、網站改版、微信小程序、品牌網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯