函數(shù)聲明是函數(shù)定義嗎

其實函數(shù)聲明是函數(shù)定義嗎的問題并不復(fù)雜,但是又很多的朋友都不太了解函數(shù)聲明與函數(shù)定義中的函數(shù)類型,因此呢,今天小編就來為大家分享函數(shù)聲明是函數(shù)定義嗎的一些知識,希望可以...
其實函數(shù)聲明是函數(shù)定義嗎的問題并不復(fù)雜,但是又很多的朋友都不太了解函數(shù)聲明與函數(shù)定義中的函數(shù)類型,因此呢,今天小編就來為大家分享函數(shù)聲明是函數(shù)定義嗎的一些知識,希望可以幫助到大家,下面我們一起來看看這個問題的分析吧!
文章目錄:
- 1、什么是函數(shù)聲明
- 2、C++中函數(shù)聲明與函數(shù)原型有什么區(qū)別
- 3、在C語言中,一個函數(shù)一般由兩個部分組成,它們是——和——
- 4、C++中,函數(shù)的聲明與函數(shù)的定義有什么區(qū)別?
- 5、今天看C語言書上說函數(shù)只能定義一次,而聲明可以有好多個,請高手給我...
什么是函數(shù)聲明
1、函數(shù)聲明是編程中非常重要的一部分,它告訴編譯器有關(guān)函數(shù)名稱、返回類型以及函數(shù)參數(shù)的信息。函數(shù)聲明有助于在程序的其他部分引用該函數(shù),并且可以為程序員提供關(guān)于函數(shù)功能及其用途的明確指示。通過函數(shù)聲明,我們可以指定函數(shù)的參數(shù)類型、數(shù)量以及函數(shù)的返回類型。這對于代碼的可讀性和維護性至關(guān)重要。
2、簡單點說,就是形式參數(shù)給個形式,實際參數(shù)放進去用。例如:fun(a);函數(shù)聲明的用處是告訴編譯器聲明的函數(shù)在后面有定義。如果你將函數(shù)定義放在調(diào)用的前面,就不需要聲明。另外聲明就是函數(shù)定義后面加上分號的形式。例如:定義是fun(int a)。聲明就是fun(int a);。
3、“函數(shù)定義”是指對函數(shù)功能的確立,包括指定函數(shù)名,函數(shù)值類型、形參類型、函數(shù)體等,它是一個完整的、獨立的函數(shù)。
C++中函數(shù)聲明與函數(shù)原型有什么區(qū)別
1、主要區(qū)別我覺得有以下一些 第一:聲明一般在主函數(shù)之前,而定義不一定。第二:定義也是一種聲明(放在主函數(shù)前面),但聲明不代表定義。第三:根據(jù)c++ primer中的闡述,函數(shù)聲明只是告訴有這樣一個函數(shù),但并不給他分配內(nèi)存空間,只有當(dāng)函數(shù)被定義后才會分配內(nèi)存空間。
2、原型相當(dāng)于聲明了這個函數(shù)并且告知了這個函數(shù)的實現(xiàn);聲明當(dāng)然僅僅是聲明,比如說外面有一個xxx方法,但有沒有是另外一會事。
3、C90 標(biāo)準(zhǔn)新增了函數(shù)原型,舊式的編譯器可能無法識別(稍后我們將介紹,如果使用這種編譯器應(yīng)該怎么做)。函數(shù)原型是一種聲明形式,告知編譯器正在使用某函數(shù),因此函數(shù)原型也被稱為函數(shù)聲明(function declaration)。函數(shù)原型還指明了函數(shù)的屬性。
4、函數(shù)是C語言中一個命名的語句塊,允許通過函數(shù)名稱進行多次調(diào)用。函數(shù)由函數(shù)原型和函數(shù)體構(gòu)成,其中函數(shù)原型相當(dāng)于函數(shù)聲明,包括返回值類型、函數(shù)名和參數(shù)列表。函數(shù)名需符合標(biāo)識符命名規(guī)則,并在作用域內(nèi)保持唯一性,C語言不支持函數(shù)名重載。參數(shù)列表可以為空,也可包含一個或多個參數(shù)。
5、函數(shù)的聲明。函數(shù)的聲明是需要帶分號的。函數(shù)聲明是用來擴展函數(shù)的作用域。比如被調(diào)函數(shù)在其它文件,或者在同一個文件中卻是在主調(diào)函數(shù)的下面,那么就需要在調(diào)用前聲明。聲明的格式是 ret_type func_name(arg_list);這個是必須帶分號的。2 函數(shù)的實現(xiàn)。當(dāng)定義一個函數(shù)的時候,不可以帶分號。
6、聲明部分 定義部分//或者說算法 C語言中函數(shù)包括函數(shù)首部和函數(shù)體,函數(shù)首部又包括函數(shù)類型、函數(shù)名、形參、有的還包括存儲方式等,函數(shù)體是函數(shù)實現(xiàn)的具體功能。
在C語言中,一個函數(shù)一般由兩個部分組成,它們是——和——
1、形參為a,b,均為整型量。a,b的具體值是由主調(diào)函數(shù)在調(diào)用時傳送過來的。在{}中的函數(shù)體內(nèi),除形參外沒有使用其它變量,因此只有語句而沒有聲明部分。在max函數(shù)體中的return語句是把a(或b)的值作為函數(shù)的值返回給主調(diào)函數(shù)。有返回值函數(shù)中至少應(yīng)有一個return語句。
2、main()---在c語言中稱之為“主函數(shù)”,一個c程序有且僅有一個main函數(shù),任何一個c程序總是從main函數(shù)開始,main函數(shù)后面的一對圓括號不能省略。 被大括號{ }括起來的內(nèi)容稱為main函數(shù)的函數(shù)體,這部分內(nèi)容就是計算機要的內(nèi)容。
3、組成c程序的基本是函數(shù),其組成部分包括文件包含、宏定義、函數(shù)說明、變量和一個或若干個函數(shù)。C語言程序由以下內(nèi)容構(gòu)成:頭文件:包含程序必需的標(biāo)準(zhǔn)庫函數(shù)頭文件的包含語句。函數(shù)定義:定義程序中要使用的函數(shù)。變量聲明:聲明程序中要使用的變量。
4、一個C語言程序通常由以下幾個主要部分組成: 預(yù)處理器指令(Preprocessor directives):用于控制編譯過程,例如#include用于包含頭文件,#define用于定義宏等。 函數(shù)(Functions):C語言是一種過程化編程語言,函數(shù)是C程序的基本構(gòu)建塊。函數(shù)由函數(shù)頭和函數(shù)體組成。
5、C語言程序的構(gòu)造要素主要包括以下幾個部分:首先,頭文件(Header Files)引入外部庫和自定義函數(shù)聲明,如stdio.h、stdlib.h和math.h等,提供了輸入輸出和數(shù)學(xué)函數(shù)。其次,全局變量(Global Variables)作為程序中可跨函數(shù)訪問的數(shù)據(jù)存儲,如計數(shù)器或配置設(shè)置。
C++中,函數(shù)的聲明與函數(shù)的定義有什么區(qū)別?
1、函數(shù)的聲明與函數(shù)的定義的區(qū)別:聲明:一般在頭文件里,對編譯器說:這里我有一個函數(shù)叫function() 讓編譯器知道這個函數(shù)的存在。定義:一般在源文件里,具體就是函數(shù)的實現(xiàn)過程 寫明函數(shù)體。你還可以這樣理解:首先下圖中的程序時,電腦是從上到下的。
2、c++中定義和聲明的區(qū)別:變量的聲明和定義:從編譯原理上來說,聲明是僅僅告訴編譯器,有個某類型的變量會被使用,但是編譯器并不會為它分配任何內(nèi)存。而定義就是分配了內(nèi)存。如果是指函數(shù)的聲明和定義:聲明一般在頭文件里,使編譯器明白這里有一個函數(shù),讓編譯器知道這個函數(shù)的存在。
3、函數(shù)的定義是指對函數(shù)功能的確立,包括指定函數(shù)名,函數(shù)值類型、形參及其類型以及函數(shù)體等,它是一個完整的、獨立的函數(shù)。
4、函數(shù)聲明時只需寫出形參類型。函數(shù)定義時必須寫出形參類型和變量名。C語言中的標(biāo)準(zhǔn)函數(shù)printf便使用這種機制。在聲明不確定形參的函數(shù)時,形參部分可以使用省略號“…”代替?!啊备嬖V編譯器,在函數(shù)調(diào)用時不檢查形參類型是否與實參類型相同,也不檢查參數(shù)個數(shù)。
今天看C語言書上說函數(shù)只能定義一次,而聲明可以有好多個,請高手給我...
就比如說 申明函數(shù) void fun() ; 而函數(shù)的定義是函數(shù)的實現(xiàn)部分。比如:void fun() { ... //具體實現(xiàn)語句 } 因為在C語言中不允許函數(shù)的重寫,所以一個函數(shù)只能定義一次。
如果不寫函數(shù)類型說明,也可以把函數(shù)定義寫在函數(shù)調(diào)用之前: ? 123456789 double square ( double x){ return x * x ;}int main(void){ printf(%f\n , square() ); return 0;} 這表明函數(shù)定義也具有對函數(shù)名的類型加以說明的效果,因此從這個意義上來說,函數(shù)定義也是一種對函數(shù)類型的說明。
你把大括號的位置放錯了,sushu函數(shù)被定義在了main函數(shù)里面,但是按照C語言的規(guī)定,函數(shù)不允許嵌套定義,所以你的sushu相當(dāng)于沒有定義(不知為何你的編譯器沒有報錯說不允許在函數(shù)內(nèi)定義函數(shù))。解決方法是把你最后面多出來的大括號移到main函數(shù)最后面。
頭文件:因為所有程序都使用一些固定功能,比如在屏幕上顯示,比鍵盤讀入數(shù)據(jù)等。而實現(xiàn)這些功能代碼就有幾百行,還有一般學(xué)生不懂的匯編語言在里面。為了方便,就將這部分代碼作為一個文件由編程自己添加到我們寫好程序文件中。
書上說頭文件中只能放置函數(shù)原型,宏的定義,結(jié)構(gòu)體變量的聲明和靜態(tài)全局變量的定義,這是為了可讀性的考慮,因為習(xí)慣上頭文件里都放這些東西,這樣源文件里能看起來清爽一些,要是把主函數(shù)都放到頭文件里了,找這個函數(shù)要找半天,這樣就失去了頭文件的意義了。
我想說,如果這道題有正確的編譯結(jié)果的話就是奇異的。因為,書上說得很明確,實參在進行函數(shù)調(diào)用的時候,必須有確定的值,這樣才能把這些值傳遞給形參。所以這道題編譯時不成功的,因為c的值不確定。并且,這里并沒有return語句,所以就算c能夠算出來也輸出不了。
好了,文章到此結(jié)束,希望可以幫助到大家。
本文鏈接:http://m.tiantaijiaoyu.cn/bian/225574.html