定義在當(dāng)前翻譯單元(一般是.c文件包含了頭文件之后的結(jié)果)外,以extern前綴聲明的函數(shù)對于當(dāng)前翻譯單元來說是外部函數(shù)。它提示編譯器,假定這個函數(shù)的定義存在,但不在當(dāng)前翻譯單元中。因此若語法正確,編譯器不對此函數(shù)產(chǎn)生標(biāo)識符未定義的錯誤。鏈接器會檢查編譯器得到的若干目標(biāo)文件以及靜態(tài)庫文件中的包括函數(shù)在內(nèi)的符號,如果不滿足唯一定義性則產(chǎn)生錯誤,鏈接失敗,不會產(chǎn)生最終目標(biāo)文件(如.exe可執(zhí)行文件)。

公司主營業(yè)務(wù):網(wǎng)站設(shè)計制作、成都做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出徐匯免費做網(wǎng)站回饋大家。
對于加static前綴聲明的函數(shù),編譯器認(rèn)為定義在當(dāng)前翻譯單元或庫中且不會被其它翻譯單元引用(也就是說函數(shù)僅對當(dāng)前源文件有效)。相對于extern(外部)函數(shù),這些函數(shù)可以稱為internal(內(nèi)部)函數(shù)。
而不加extern或static聲明的函數(shù),默認(rèn)為定義在當(dāng)前翻譯單元中,且其它翻譯單元可以用extern函數(shù)聲明引用這個函數(shù)(對鏈接器可見)。
對于非extern函數(shù),如果編譯器在當(dāng)前翻譯單元中找不到函數(shù)的定義,則產(chǎn)生標(biāo)識符未定義的編譯錯誤,編譯失敗。
====
[原創(chuàng)回答團(tuán)]
c語言庫函數(shù)很多,我知道的有250多個。可能更多。當(dāng)然不可能全部記住了。不過他們都是分類的,實現(xiàn)不同的功能。大體了解他們的功能用的時候查就行了,況且?guī)旌瘮?shù)用法很簡單。能記住當(dāng)然好
就是你寫這C代碼的那個文件
例如你在t1.c文件里寫了一個static int xxx()的函數(shù),這個函數(shù)就叫內(nèi)部函數(shù),只能被t1.c這里的其它函數(shù)調(diào)用
內(nèi)部函數(shù)跟外部函數(shù)的區(qū)別在于:一個文件中定義的函數(shù)能否被其它文件調(diào)用。能被調(diào)用的函數(shù)在前面加extern(一般省略),而不能被調(diào)用的加static(不能省略),通常函數(shù)本質(zhì)上是全局的,也就是外部的可調(diào)用的。
我們通常調(diào)用的#include本質(zhì)上就是一些外部函數(shù)的集合,由于在一個文件中的函數(shù)要調(diào)用另外一個文件的函數(shù),要求在開始聲明一下,為了省略這些聲明,我們引用include命令。
函數(shù)是數(shù)學(xué)名詞,代數(shù)式中,凡相關(guān)的兩數(shù)X與Y,對于每個X值,都只有一個Y的對應(yīng)值。這種對應(yīng)關(guān)系就表示Y是X的函數(shù)。
函數(shù)(function)的定義通常分為傳統(tǒng)定義和近代定義,函數(shù)的兩個定義本質(zhì)是相同的,只是敘述概念的出發(fā)點不同,傳統(tǒng)定義是從運動變化的觀點出發(fā),而近代定義是從集合、映射的觀點出發(fā)。
函數(shù)的近代定義是給定一個數(shù)集A,假設(shè)其中的元素為x,對A中的元素x施加對應(yīng)法則f,記作f(x),得到另一數(shù)集B,假設(shè)B中的元素為y,則y與x之間的等量關(guān)系可以用y=f(x)表示,函數(shù)概念含有三個要素:定義域A、值域B和對應(yīng)法則f。其中核心是對應(yīng)法則f,它是函數(shù)關(guān)系的本質(zhì)特征。
函數(shù),最早由中國清朝數(shù)學(xué)家李善蘭翻譯,出于其著作《代數(shù)學(xué)》。之所以這么翻譯,他給出的原因是“凡此變數(shù)中函彼變數(shù)者,則此為彼之函數(shù)”,也即函數(shù)指一個量隨著另一個量的變化而變化,或者說一個量。
內(nèi)部函數(shù)(用static關(guān)鍵字說明)是作用域只限于說明它的源文件的函數(shù)。作用域指的是函數(shù)或變量的可見性。如果一個函數(shù)或變量在說明它的源文件以外也是可見的,那么就稱它具有全局或外部作用域;如果一個函數(shù)或變量只在說明它的源文件中是可見的,那么就稱它具有局部或內(nèi)部作用域。
函數(shù)庫和語言綁定,c庫,c++庫等,是最基本的庫。一般是國際標(biāo)準(zhǔn)。
比如printf,scanf就是c庫函數(shù)
本文名稱:c語言什么是內(nèi)部函數(shù),c語言都是外部函數(shù)
當(dāng)前地址:http://chinadenli.net/article19/dsgdcgh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站制作、ChatGPT、企業(yè)建站、軟件開發(fā)、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)