C。
10年積累的做網(wǎng)站、網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計制作后付款的網(wǎng)站建設(shè)流程,更有平原免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
C語言規(guī)定,只要在定義函數(shù)時不進行存儲類型的顯式說明,函數(shù)的存儲類型就隱含為外部類型,即extern型,外部類型允許其他文件中的函數(shù)調(diào)用。
實際上函數(shù)的聲明和定義都不需要添加extern關(guān)鍵字,在實際使用的時候也最好不要添加關(guān)鍵字。
如果一個函數(shù)是不會被其它文件調(diào)用的,那么這個函數(shù)應(yīng)該被聲明成static的。
如:
extern int func(void){
return 0;
}
跟
int func(void){
return 0;
}
是等價的,另外
extern int func(void);
跟
int func(void);是等價的。
擴展資料:
函數(shù)調(diào)用的一般形式為:
函數(shù)名(實參表列);
如果是調(diào)用無參函數(shù),則"實參表列"可以沒有,但括弧不能省略。如果實參表列包含多個實參,則個參數(shù)間用逗號隔開。實參與形參的個數(shù)應(yīng)相等,類型應(yīng)一致。
實參與形參按順序?qū)?yīng),一一傳遞數(shù)據(jù)。但應(yīng)說明,如果實參表列包括多個實參,對實參求值的順序并不是確定的,有的系統(tǒng)按自左至右順序求實參的值,有的系統(tǒng)則按自右至左順序
參考資料:
百度百科-c函數(shù)
函數(shù)的隱含存儲類型是extern,按照c語言的原則,函數(shù)隱含為全局都可以訪問,因此默認為extern,而auto只用于變量,是變量的隱含存儲類型。
函數(shù)的存儲類型指的是其他文件模塊可否訪問,其類別可以是extern或static。
static是指該函數(shù)只能被本源程序文件道中的模塊訪問。extern是指可被本源程序文件外的模塊訪問。
C語言中函數(shù)的存儲類型隱含為版全局的,因此默認為extern。
函數(shù)內(nèi)定義的變量,默權(quán)認作用域在本函數(shù)內(nèi),即其類型是auto。
擴展資料:
C語言中提供了存儲說明符auto、register、extern、static說明的四種存儲類別。四種存儲類別說明符有兩種存儲期:自動存儲期和靜態(tài)存儲期。
其中auto和register對應(yīng)自動存儲期。具有自動存儲期的變量在進入聲明該變量的程序塊時被建立,它在該程序塊活動時存在,退出該程序塊時撤銷。在函數(shù)內(nèi)部定義的變量成為局部變量。在某些C語言教材中,局部變量稱為自動變量,這就與使用可選關(guān)鍵字auto定義局部變量這一作法保持一致。
extern用在變量聲明中常常有這樣一個作用:要在*.c文件中引用另一個文件中的一個全局的變量,那就應(yīng)該放在*.h中用extern來聲明這個全局變量。
extern用于變量的用法:
1、extern int a;//聲明一個全局變量a
2、int a; //定義一個全局變量a
3、extern int a =0 ;//定義一個全局變量a 并給初值。一旦給予賦值,一定是定義,定義才會分配存儲空間。(注意:經(jīng)過測試在GCC中,這樣定義變量是不能通過編譯的,而在VS2013可以)
參考資料來源:百度百科——extern
參考資料來源:百度百科——auto
c語言中,函數(shù)的隱含存儲類別是extern
形參的默認存儲類別是auto