1.

創(chuàng)新互聯(lián)專(zhuān)注于白沙黎族網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供白沙黎族營(yíng)銷(xiāo)型網(wǎng)站建設(shè),白沙黎族網(wǎng)站制作、白沙黎族網(wǎng)頁(yè)設(shè)計(jì)、白沙黎族網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開(kāi)發(fā)服務(wù),打造白沙黎族網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供白沙黎族網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
請(qǐng)使用預(yù)編譯指令
#include。加入外部文件,就可以使用外部文件的函數(shù)了。
#include放在代碼文件頭,用于告訴編譯器,文件中包含的頭文件,屬于預(yù)處理文件的一部分
。
語(yǔ)法為:
#include
iostream.h
(這句是程序編譯時(shí)搜索系統(tǒng)目錄文件)
#include
“HName.h"
(這句是程序編譯時(shí)搜索當(dāng)前項(xiàng)目的文件)
2.
例如:
//函數(shù)實(shí)現(xiàn) a.c文件:
int add(int x, int y){
return x+y;
}
//主文件 main.c文件:
#include stdio.h
#include "a.c" //引入外部函數(shù)
int main(){
int i;
i = add(1,2);
printf("%d",i);
return 0;
}
有兩種理解.(1)庫(kù)函數(shù)是C語(yǔ)言的內(nèi)部函數(shù)或自帶函數(shù),外部函數(shù)即程序員自定函數(shù).
(2)凡加寫(xiě)了extern 的函數(shù)是外部函數(shù).
第一種理解好懂:
C語(yǔ)言的內(nèi)部函數(shù)指的是C語(yǔ)言自帶的函數(shù),無(wú)論是動(dòng)態(tài)鏈接的或靜態(tài)鏈接的. 這些函數(shù)通過(guò)C語(yǔ)言的頭文件定義了.
例如, sin(),cos()等數(shù)學(xué)函數(shù),在math.h中定義了,輸入輸出函數(shù) printf(),fgetc()在stdio.h中定義了,時(shí)間函數(shù)表time(),ctime()等在time.h中定義了.還有許多其他內(nèi)部函數(shù).編程時(shí),只要用#include 庫(kù)名.h寫(xiě)在編程頭部,程序中就可調(diào)用.
自定義函數(shù),就是用戶(hù)自己寫(xiě)的函數(shù).
第二種凡加寫(xiě)了extern 的函數(shù)是外部函數(shù):
自定義函數(shù)可以與程序的main()寫(xiě)在同一個(gè)文件中,也可以寫(xiě)在另一個(gè)文件中,這時(shí)你可能還另寫(xiě)自己的頭文件或者寫(xiě)extern....,告訴編譯器,main中用到的某某函數(shù)是"外部函數(shù)".
例如,main()在a.c中,自定義函數(shù)my_func()在a2.c中
a.c內(nèi)容:
#include stdio.h
extern float my_func(float a);
main()
{
printf("result=%f\n",my_func(2.0));
}
a2.c 內(nèi)容:
float my_func(float a)
{
return a;
}
編譯:
cl -c a.c [得到a.obj]
cl -c a2.c [得到a2.obj]
cl a.obj a2.obj [鏈接成a.exe]
運(yùn)行:
a.exe
得
result=2.000000
extern float my_func() 是外部說(shuō)明,告訴編譯,main()里的my_func是外部函數(shù),要通過(guò)鏈接(.obj)得到.
如果把my_func寫(xiě)在a.c里:
#include stdio.h
float my_func(float a){
retun a;
}
main()
{
printf("result=%f\n",my_func(2.0));
}
my_func() 就不是外部函數(shù).
編譯:
cl a.c [得a.exe]
運(yùn)行:
a.exe
得
result=2.000000
當(dāng)一個(gè)源程序由多個(gè)源文件組成時(shí),C語(yǔ)言根據(jù)函數(shù)能否被其它源文件中的函數(shù)調(diào)用,將函數(shù)分為內(nèi)部函數(shù)和外部函數(shù)。
如果在一個(gè)源文件中定義的函數(shù),只能被本文件中的函數(shù)調(diào)用,而不能被同一程序其它文件中的函數(shù)調(diào)用,這種函數(shù)稱(chēng)為內(nèi)部函數(shù)。
定義一個(gè)內(nèi)部函數(shù),只需在函數(shù)類(lèi)型前再加一個(gè)“static”關(guān)鍵字即可,如下所示:
static 函數(shù)類(lèi)型 函數(shù)名(函數(shù)參數(shù)表){……}
在定義函數(shù)時(shí),如果沒(méi)有加關(guān)鍵字“static”,或冠以關(guān)鍵字“extern”,表示此函數(shù)是外部函數(shù):
[extern] 函數(shù)類(lèi)型 函數(shù)名(函數(shù)參數(shù)表){……}
外部函數(shù)原型聲明要有extern
簡(jiǎn)單說(shuō),外部函數(shù)是用戶(hù)自定義函數(shù),該函數(shù)寫(xiě)在另一個(gè)文件里.
void function(定義變量)
定義變量
{}
是老式 C 語(yǔ)言的 寫(xiě)法。
函數(shù)名與函數(shù)體之間 定義的變量是形參的詳細(xì)描述(聲明類(lèi)型),不是全局量。也不叫局部量,它們是形參。
現(xiàn)在合寫(xiě)在小括號(hào) (定義變量) 里了。
傳入數(shù)組可以用指針,也可以用維數(shù)確定的數(shù)組。
int my_funcA( int a[3][3]){}
調(diào)用的數(shù)組要同它大小維數(shù)相同。
1、外部函數(shù)extern時(shí)聲明這個(gè)函數(shù)為外部函數(shù),本文件不做定義,只調(diào)用,編譯不會(huì)出錯(cuò),但不能運(yùn)行(沒(méi)有函數(shù)實(shí)體)。如果想有運(yùn)行結(jié)果就必須將函數(shù)實(shí)體包含進(jìn)來(lái),所以文件包含和extern是配合使用的。文件包含只需要包含.h就是實(shí)體的頭文件,但有些軟件貌似不能識(shí)別頭文件和c的關(guān)系,所以就只能包含.c文件。
2、也就是說(shuō)外部函數(shù)extern只是個(gè)聲明,他告訴編譯器我用到了一個(gè)外部函數(shù),但如果該文件沒(méi)有將函數(shù)實(shí)體包含進(jìn)來(lái),編譯器是找不到的,依然是不能運(yùn)行的,所以extern只是個(gè)聲明,并沒(méi)有做任何事,只是這樣是沒(méi)用的。include是包含一個(gè)文件,就是類(lèi)似于該文件復(fù)制到此處(只是說(shuō)類(lèi)似,其實(shí)是個(gè)查找路徑,讓編譯器去該路徑查找函數(shù))。
新聞標(biāo)題:c語(yǔ)言外部函數(shù)格式 c語(yǔ)言都是外部函數(shù)
網(wǎng)站鏈接:http://chinadenli.net/article4/dodjjoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站內(nèi)鏈、手機(jī)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)