<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • 外部函數(shù)和內(nèi)部函數(shù)c語(yǔ)言 c語(yǔ)言有內(nèi)部函數(shù)嗎

            什么叫外部函數(shù)? (C語(yǔ)言問(wèn)題)

            當(dāng)一個(gè)源程序由多個(gè)源文件組成時(shí),C語(yǔ)言根據(jù)函數(shù)能否被其它源文件中的函數(shù)調(diào)用,將函數(shù)分為內(nèi)部函數(shù)和外部函數(shù)。

            創(chuàng)新互聯(lián)專(zhuān)注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、做網(wǎng)站、廣昌網(wǎng)絡(luò)推廣、小程序定制開(kāi)發(fā)、廣昌網(wǎng)絡(luò)營(yíng)銷(xiāo)、廣昌企業(yè)策劃、廣昌品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供廣昌建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.jbt999.com

            如果在一個(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ù)是用戶自定義函數(shù),該函數(shù)寫(xiě)在另一個(gè)文件里.

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

            來(lái)自百度百科

            C語(yǔ)言外部函數(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語(yǔ)言規(guī)定,定義函數(shù)時(shí)省略了extern則隱含為外部函數(shù),可被其他文件調(diào)用

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

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

            關(guān)于C語(yǔ)言的一道題目 內(nèi)部函數(shù) 外部函數(shù)

            因?yàn)?/p>

            C語(yǔ)言編譯時(shí)要檢查語(yǔ)法,所以A不對(duì);

            C語(yǔ)言沒(méi)有過(guò)程,只有函數(shù),所以B不對(duì);

            C語(yǔ)言函數(shù)內(nèi)不能定義函數(shù),既不能嵌套定義,所以C不對(duì)。

            排除法也知道是D了。當(dāng)然由“函數(shù)內(nèi)不能定義函數(shù)”也可以推出所有函數(shù)都是外部函數(shù)。

            —— 其實(shí)這種說(shuō)法對(duì)外部函數(shù)的理解也還值得商榷。但其它的是完全不對(duì),也就選它吧。

            什么是外部函數(shù)?什么是內(nèi)部函數(shù)?

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

            對(duì)于加static前綴聲明的函數(shù),編譯器認(rèn)為定義在當(dāng)前翻譯單元或庫(kù)中且不會(huì)被其它翻譯單元引用(也就是說(shuō)函數(shù)僅對(duì)當(dāng)前源文件有效)。相對(duì)于extern(外部)函數(shù),這些函數(shù)可以稱(chēng)為internal(內(nèi)部)函數(shù)。

            而不加extern或static聲明的函數(shù),默認(rèn)為定義在當(dāng)前翻譯單元中,且其它翻譯單元可以用extern函數(shù)聲明引用這個(gè)函數(shù)(對(duì)鏈接器可見(jiàn))。

            對(duì)于非extern函數(shù),如果編譯器在當(dāng)前翻譯單元中找不到函數(shù)的定義,則產(chǎn)生標(biāo)識(shí)符未定義的編譯錯(cuò)誤,編譯失敗。

            ====

            [原創(chuàng)回答團(tuán)]

            有關(guān)C語(yǔ)言的內(nèi)部函數(shù)和外部函數(shù)的定義說(shuō)明

            有兩種理解.(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ù),就是用戶自己寫(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

            在C語(yǔ)言中,內(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ù),要求在開(kāi)始聲明一下,為了省略這些聲明,我們引用include命令。

            新聞名稱(chēng):外部函數(shù)和內(nèi)部函數(shù)c語(yǔ)言 c語(yǔ)言有內(nèi)部函數(shù)嗎
            文章起源:http://www.jbt999.com/article36/hjjdpg.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、企業(yè)建站App開(kāi)發(fā)、響應(yīng)式網(wǎng)站、網(wǎng)站營(yíng)銷(xiāo)、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;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

            微信小程序開(kāi)發(fā)

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 国产又色又爽无遮挡免费 | 日本黄色视频官网 | 大鸡巴操逼高潮视频 | 黄色视频在线观看大全 | 91北条麻妃二区 |