函數(shù)的隱含存儲類型是extern,按照c語言的原則,函數(shù)隱含為全局都可以訪問,因此默認(rèn)為extern,而auto只用于變量,是變量的隱含存儲類型。
成都創(chuàng)新互聯(lián)為客戶提供專業(yè)的成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁設(shè)計(jì)、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、成都做手機(jī)網(wǎng)站等網(wǎng)站方面業(yè)務(wù)。
函數(shù)的存儲類型指的是其他文件模塊可否訪問,其類別可以是extern或static。
static是指該函數(shù)只能被本源程序文件道中的模塊訪問。extern是指可被本源程序文件外的模塊訪問。
C語言中函數(shù)的存儲類型隱含為版全局的,因此默認(rèn)為extern。
函數(shù)內(nèi)定義的變量,默權(quán)認(rèn)作用域在本函數(shù)內(nèi),即其類型是auto。
擴(kuò)展資料:
C語言中提供了存儲說明符auto、register、extern、static說明的四種存儲類別。四種存儲類別說明符有兩種存儲期:自動(dòng)存儲期和靜態(tài)存儲期。
其中auto和register對應(yīng)自動(dòng)存儲期。具有自動(dòng)存儲期的變量在進(jìn)入聲明該變量的程序塊時(shí)被建立,它在該程序塊活動(dòng)時(shí)存在,退出該程序塊時(shí)撤銷。在函數(shù)內(nèi)部定義的變量成為局部變量。在某些C語言教材中,局部變量稱為自動(dòng)變量,這就與使用可選關(guān)鍵字auto定義局部變量這一作法保持一致。
extern用在變量聲明中常常有這樣一個(gè)作用:要在*.c文件中引用另一個(gè)文件中的一個(gè)全局的變量,那就應(yīng)該放在*.h中用extern來聲明這個(gè)全局變量。
extern用于變量的用法:
1、extern int a;//聲明一個(gè)全局變量a
2、int a; //定義一個(gè)全局變量a
3、extern int a =0 ;//定義一個(gè)全局變量a 并給初值。一旦給予賦值,一定是定義,定義才會分配存儲空間。(注意:經(jīng)過測試在GCC中,這樣定義變量是不能通過編譯的,而在VS2013可以)
參考資料來源:百度百科——extern
參考資料來源:百度百科——auto
C。
C語言規(guī)定,只要在定義函數(shù)時(shí)不進(jìn)行存儲類型的顯式說明,函數(shù)的存儲類型就隱含為外部類型,即extern型,外部類型允許其他文件中的函數(shù)調(diào)用。
實(shí)際上函數(shù)的聲明和定義都不需要添加extern關(guān)鍵字,在實(shí)際使用的時(shí)候也最好不要添加關(guān)鍵字。
如果一個(gè)函數(shù)是不會被其它文件調(diào)用的,那么這個(gè)函數(shù)應(yīng)該被聲明成static的。
如:
extern int func(void){
return 0;
}
跟
int func(void){
return 0;
}
是等價(jià)的,另外
extern int func(void);
跟
int func(void);是等價(jià)的。
擴(kuò)展資料:
函數(shù)調(diào)用的一般形式為:
函數(shù)名(實(shí)參表列);
如果是調(diào)用無參函數(shù),則"實(shí)參表列"可以沒有,但括弧不能省略。如果實(shí)參表列包含多個(gè)實(shí)參,則個(gè)參數(shù)間用逗號隔開。實(shí)參與形參的個(gè)數(shù)應(yīng)相等,類型應(yīng)一致。
實(shí)參與形參按順序?qū)?yīng),一一傳遞數(shù)據(jù)。但應(yīng)說明,如果實(shí)參表列包括多個(gè)實(shí)參,對實(shí)參求值的順序并不是確定的,有的系統(tǒng)按自左至右順序求實(shí)參的值,有的系統(tǒng)則按自右至左順序
參考資料:
百度百科-c函數(shù)
c語言中,函數(shù)的隱含存儲類別是extern
形參的默認(rèn)存儲類別是auto