c語言全局外部函數(shù)嗎 c語言中所有函數(shù)為外部函數(shù)

C語言中,全局變量和外部變量有什么區(qū)別

全局變量也稱為外部變量,它是在函數(shù)外部定義的變量。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、欽州網(wǎng)站維護(hù)、網(wǎng)站推廣。

作用域不是整個(gè)源程序,是從定義處開始到程序結(jié)束。在函數(shù)中使用全局變量,一般應(yīng)作全局變量說明。 只有在函數(shù)內(nèi)經(jīng)過說明的全局變量才能使用。

全局變量的說明符為extern。 但在一個(gè)函數(shù)之前定義的全局變量,在該函數(shù)內(nèi)使用可不再加以說明。外部變量是在函數(shù)外部定義的全局變量,它的作用域是從變量的定義處開始,到本程序文件的結(jié)尾。

在此作用域內(nèi),全局變量可為各個(gè)函數(shù)所引用。編譯時(shí)將外部變量分配在靜態(tài)存儲(chǔ)區(qū)。 有時(shí)需要在其他文件中使用extern來聲明外部變量,以擴(kuò)展外部變量的作用域。

也可用static聲明外部變量,使該變量不能被其他文件引用。有時(shí)候他們是一樣的,只有稍微一點(diǎn)的區(qū)別而已,不用太過于區(qū)分的。

C語言都是外部函數(shù)嗎……

有兩種理解.(1)庫函數(shù)是C語言的內(nèi)部函數(shù)或自帶函數(shù),外部函數(shù)即程序員自定函數(shù).

(2)凡加寫了extern 的函數(shù)是外部函數(shù).

第一種理解好懂:

C語言的內(nèi)部函數(shù)指的是C語言自帶的函數(shù),無論是動(dòng)態(tài)鏈接的或靜態(tài)鏈接的. 這些函數(shù)通過C語言的頭文件定義了.

例如, sin(),cos()等數(shù)學(xué)函數(shù),在math.h中定義了,輸入輸出函數(shù) printf(),fgetc()在stdio.h中定義了,時(shí)間函數(shù)表time(),ctime()等在time.h中定義了.還有許多其他內(nèi)部函數(shù).編程時(shí),只要用#include 庫名.h寫在編程頭部,程序中就可調(diào)用.

自定義函數(shù),就是用戶自己寫的函數(shù).

第二種凡加寫了extern 的函數(shù)是外部函數(shù):

自定義函數(shù)可以與程序的main()寫在同一個(gè)文件中,也可以寫在另一個(gè)文件中,這時(shí)你可能還另寫自己的頭文件或者寫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() 是外部說明,告訴編譯,main()里的my_func是外部函數(shù),要通過鏈接(.obj)得到.

如果把my_func寫在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

在C語言中,內(nèi)部函數(shù)和外部函數(shù)的區(qū)別?

內(nèi)部函數(shù)跟外部函數(shù)的區(qū)別在于:一個(gè)文件中定義的函數(shù)能否被其它文件調(diào)用。能被調(diào)用的函數(shù)在前面加extern(一般省略),而不能被調(diào)用的加static(不能省略),通常函數(shù)本質(zhì)上是全局的,也就是外部的可調(diào)用的。

我們通常調(diào)用的#include本質(zhì)上就是一些外部函數(shù)的集合,由于在一個(gè)文件中的函數(shù)要調(diào)用另外一個(gè)文件的函數(shù),要求在開始聲明一下,為了省略這些聲明,我們引用include命令。

為什么C語言中所有的函數(shù)都是外函數(shù)

來自百度百科

C語言外部函數(shù)是一種可在自身所處的源文件及其他源文件中都能被調(diào)用的函數(shù)。外部函數(shù)的作用域是整個(gè)源程序。

函數(shù)調(diào)用

編輯

1、在定義函數(shù)時(shí),若在函數(shù)首部的最左端加關(guān)鍵字extern,則表示此函數(shù)是外部調(diào)用,可被其他文件調(diào)用,函數(shù)首部可以為

Extern int fun(int a,int b);

C語言規(guī)定,定義函數(shù)時(shí)省略了extern則隱含為外部函數(shù),可被其他文件調(diào)用

2、在需要調(diào)用函數(shù)的文件中,用extern對(duì)函數(shù)聲明,表示該函數(shù)是在其他文件中定義的外部函數(shù)

所以外函數(shù)只是一種引用方式,大項(xiàng)目多人分開寫,可能會(huì)有多個(gè)文件,最后要整合在一起用。那被引用的文件中函數(shù)相對(duì)與引用者,就是外部函數(shù)。

網(wǎng)頁名稱:c語言全局外部函數(shù)嗎 c語言中所有函數(shù)為外部函數(shù)
轉(zhuǎn)載源于:http://muchs.cn/article46/dohcghg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作網(wǎng)站收錄、服務(wù)器托管、外貿(mào)建站網(wǎng)站設(shè)計(jì)、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)