c語言函數(shù)定義與聲明:詳解、語法、范例
很多朋友對(duì)于c語言函數(shù)定義與聲明:詳解、語法、范例和c語言的函數(shù)聲明不太懂,今天就由小編來為大家分享,希望可以幫助到大家,下面一起來看看吧! 文章目錄: 1、請(qǐng)問C語言...
很多朋友對(duì)于c語言函數(shù)定義與聲明:詳解、語法、范例和c語言的函數(shù)聲明不太懂,今天就由小編來為大家分享,希望可以幫助到大家,下面一起來看看吧!
文章目錄:
- 1、請(qǐng)問C語言中函數(shù)定義,函數(shù)聲明和函數(shù)調(diào)用的區(qū)別?
- 2、c語言函數(shù)聲明
- 3、函數(shù)聲明與函數(shù)定義分別在程序中的什么位置?為什么?
- 4、函數(shù)聲明與函數(shù)定義的區(qū)別
- 5、關(guān)于C語言函數(shù)的聲明,怎么理解能簡單點(diǎn)
- 6、...而聲明可以有好多個(gè),請(qǐng)高手給我再詳細(xì)解釋一下,最好能給個(gè)例子_百度...
請(qǐng)問C語言中函數(shù)定義,函數(shù)聲明和函數(shù)調(diào)用的區(qū)別?
樓主可以這樣想,C語言中,無論是常量,變量,函數(shù),只有先定義才能使用的。在函數(shù)定義時(shí),大腦要往一般的常量,變量定義的方向,切忌先不要想函數(shù)的別的。定義好后,把函數(shù)的定義先放一邊,不管它。接著是函數(shù)聲明,大家都知道,C語言是有一個(gè)主函數(shù)main()和0或n個(gè)普通函數(shù)組成的。
在C語言中,函數(shù)定義和函數(shù)調(diào)用是兩個(gè)不同的概念。函數(shù)定義指的是編寫函數(shù)體的過程,其中定義了函數(shù)的名稱、參數(shù)列表、返回類型以及函數(shù)體內(nèi)的實(shí)現(xiàn)代碼。函數(shù)定義告訴編譯器如何該函數(shù)。
C語言中一個(gè)函數(shù)(function)是一個(gè)可以從程序其它地方調(diào)用的語句塊。通過使用函數(shù)(functions)我們可以把我們的程序以更模塊化的形式組織起來,從而利用C語言所支持的結(jié)構(gòu)化程序設(shè)計(jì)。從數(shù)學(xué)角度,函數(shù)即A和B之間的映射關(guān)系。
函數(shù)名稱作為一個(gè)名稱,必須先聲明后引用(函數(shù)調(diào)用表達(dá)式是引用函數(shù)名稱的最常見情況)。函數(shù)定義中包含了函數(shù)聲明。如果沒有在調(diào)用前自行定義(例如定義在外部庫文件中),那么需要在調(diào)用前加上聲明,即函數(shù)頭加分號(hào)的形式(形式參數(shù)名被編譯器忽略,因此可省略)。
在程序中,函數(shù)聲明和調(diào)用通常是分開的,函數(shù)聲明一般放在頭文件中或在程序的開頭部分,而函數(shù)定義可以放在任何位置。在使用函數(shù)時(shí),先進(jìn)行函數(shù)聲明,然后在需要時(shí)調(diào)用函數(shù)。
因?yàn)樗褪锹暶?,僅僅表明下面的代碼引用了一個(gè)符號(hào),而這個(gè)符號(hào)是int類型的a而已。如果是指函數(shù)的聲明和定義:聲明:一般在頭文件里,對(duì)編譯器說:這里我有一個(gè)函數(shù)叫function() 讓編譯器知道這個(gè)函數(shù)的存在。定義:一般在源文件里,具體就是函數(shù)的實(shí)現(xiàn)過程 寫明函數(shù)體。
c語言函數(shù)聲明
1、在程序中,函數(shù)聲明和調(diào)用通常是分開的,函數(shù)聲明一般放在頭文件中或在程序的開頭部分,而函數(shù)定義可以放在任何位置。在使用函數(shù)時(shí),先進(jìn)行函數(shù)聲明,然后在需要時(shí)調(diào)用函數(shù)。
2、C語言里sin函數(shù)和cos函數(shù)是C標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)庫中的函數(shù),調(diào)用需要引入math.h頭文件。sin() 函數(shù)描述:C 庫函數(shù) double sin(double x) 返回弧度角 x 的正弦。sin() 函數(shù)的聲明:double sin(double x)。參數(shù):x -- 浮點(diǎn)值,代表了一個(gè)以弧度表示的角度。返回值:該函數(shù)返回 x 的正弦。
3、在調(diào)用的函數(shù)前定義函數(shù),此時(shí)可以不需要聲明。在調(diào)用的函數(shù)前聲明。在調(diào)用的函數(shù)里面也可以聲明。在其他文件的頭文件*.h文件里面聲明,然后*.c文件直接調(diào)用頭文件也可以。如果你把子函數(shù)放到MAIN函數(shù)外,則必須在定義的時(shí)候先聲明。如果把 子函數(shù)放在MAIN函數(shù)中就不需要提前聲明了。
4、在C語言中,它們叫被做“函數(shù)類型聲明”(Function type declaration)。函數(shù)類型聲明最主要的特點(diǎn)是聲明了函數(shù)名是一個(gè)函數(shù)及其返回值的類型,如果也聲明了參數(shù)的類型,則是函數(shù)原型式的函數(shù)類型聲明。
函數(shù)聲明與函數(shù)定義分別在程序中的什么位置?為什么?
函數(shù)定義,就是在聲明之后不跟分號(hào),而是以大括號(hào)表示函數(shù)體,把函數(shù)的具體代碼寫在大括號(hào)內(nèi)部。上圖中的main()函數(shù)就是定義,printf()函數(shù)是聲明。定義,實(shí)現(xiàn)的是函數(shù)的內(nèi)容。函數(shù)是不能多次定義的,否則編譯器不知道采用哪個(gè)定義的代碼。但函數(shù)可以多次聲明,只要聲明都是一樣的,不互相矛盾。
函數(shù)的聲明與函數(shù)的定義的區(qū)別:聲明:一般在頭文件里,對(duì)編譯器說:這里我有一個(gè)函數(shù)叫function() 讓編譯器知道這個(gè)函數(shù)的存在。定義:一般在源文件里,具體就是函數(shù)的實(shí)現(xiàn)過程 寫明函數(shù)體。你還可以這樣理解:首先下圖中的程序時(shí),電腦是從上到下的。
一般放在函數(shù)外,調(diào)用之前。放在哪跟有類沒類沒有直接聯(lián)系。實(shí)踐中一般將函數(shù)聲明、類的定義放在頭文件中。而定義放在單獨(dú)的源文件(.cpp)。如果有哪個(gè)源文件中用到了頭文件中聲明的函數(shù)或類,只需#include “***.h”將頭文件包含進(jìn)來。
樓主可以這樣想,C語言中,無論是常量,變量,函數(shù),只有先定義才能使用的。在函數(shù)定義時(shí),大腦要往一般的常量,變量定義的方向,切忌先不要想函數(shù)的別的。定義好后,把函數(shù)的定義先放一邊,不管它。接著是函數(shù)聲明,大家都知道,C語言是有一個(gè)主函數(shù)main()和0或n個(gè)普通函數(shù)組成的。
如果需要重用代碼,聲明最好放在頭文件,定義一般放在實(shí)現(xiàn)文件里。定義和聲明的區(qū)別:簡單來說對(duì)于變量和函數(shù)定義就是分配內(nèi)存;聲明就是向編譯器表明程序中有這么一個(gè)變量或者函數(shù)(目的是讓編譯器不報(bào)錯(cuò)),但是不在聲明處分配內(nèi)存。(注意函數(shù)也是需要占用內(nèi)存的)。
聲明一般要放在MAIN函數(shù)之前,也可以放在main函數(shù)主題的最開始。建議放在main函數(shù)之前。
函數(shù)聲明與函數(shù)定義的區(qū)別
函數(shù)的定義。函數(shù)的定義是一個(gè)完整的函數(shù)單元,包含函數(shù)類型、函數(shù)名、形參及形參類型、函數(shù)體等。在程序中,函數(shù)的定義只能有一次。函數(shù)首部與花括號(hào)間不加分號(hào)。函數(shù)的聲明。
函數(shù)的聲明與函數(shù)的定義形式上十分相似,但是二者有著本質(zhì)上的不同。聲明是不開辟內(nèi)存的,僅僅告訴編譯器,要聲明的部分存在,要預(yù)留一點(diǎn)空間。定義則需要開辟內(nèi)存。 函數(shù)聲明只是對(duì)編譯的一個(gè)說明: 函數(shù)聲明是對(duì)定義的函數(shù)的返回值的類型說明,以通知在本函數(shù)中所調(diào)用的函數(shù)是什么類型。
函數(shù)的聲明與函數(shù)的定義的區(qū)別:聲明:一般在頭文件里,對(duì)編譯器說:這里我有一個(gè)函數(shù)叫function() 讓編譯器知道這個(gè)函數(shù)的存在。定義:一般在源文件里,具體就是函數(shù)的實(shí)現(xiàn)過程 寫明函數(shù)體。你還可以這樣理解:首先下圖中的程序時(shí),電腦是從上到下的。
關(guān)于C語言函數(shù)的聲明,怎么理解能簡單點(diǎn)
1、代碼的運(yùn)行是自上到下的。如果你的函數(shù)在被調(diào)用的地方的上面。那么你就可以不需要聲明。反之,如果你的函數(shù)在調(diào)用處的下面。
2、/ { 這里就是函數(shù)的主體,像算法什么的 } 一般來說在主函數(shù)中是要對(duì)自定義的函數(shù)進(jìn)行聲明的,但是當(dāng)你自定義的函數(shù)在主函數(shù)前的話,可以不聲明。還有函數(shù)的類型有一種是不需要返回值的,加了RETURN反而是語法錯(cuò)誤,但其他的函數(shù)都可以用RETURN來返回~~~多看看書,多想想,多練練。
3、你這個(gè)問題看似簡單,其實(shí)涉及到了函數(shù)的聲明與定義,以及C語言的標(biāo)準(zhǔn)規(guī)范和具體編譯器的實(shí)現(xiàn)問題。從標(biāo)準(zhǔn)規(guī)范來看:C語言允許函數(shù)里聲明函數(shù),但是不建議這么寫,因?yàn)椴焕诙辔臋n的組織。C語言禁止函數(shù)里定義函數(shù),但是個(gè)別編譯器卻沒遵循標(biāo)準(zhǔn)。
4、你把大括號(hào)的位置放錯(cuò)了,sushu函數(shù)被定義在了main函數(shù)里面,但是按照C語言的規(guī)定,函數(shù)不允許嵌套定義,所以你的sushu相當(dāng)于沒有定義(不知為何你的編譯器沒有報(bào)錯(cuò)說不允許在函數(shù)內(nèi)定義函數(shù))。解決方法是把你最后面多出來的大括號(hào)移到main函數(shù)最后面。
...而聲明可以有好多個(gè),請(qǐng)高手給我再詳細(xì)解釋一下,最好能給個(gè)例子_百度...
1、就比如說 申明函數(shù) void fun() ; 而函數(shù)的定義是函數(shù)的實(shí)現(xiàn)部分。比如:void fun() { ... //具體實(shí)現(xiàn)語句 } 因?yàn)樵贑語言中不允許函數(shù)的重寫,所以一個(gè)函數(shù)只能定義一次。
2、如果是用電腦的東西你肯定能找到了,如果是用手機(jī)的東西,一般情況下,會(huì)讓你選擇目錄,完畢后會(huì)在上方通知欄里面有通知,如果是,一點(diǎn)就直接可以了。
3、由于超過了光速就等于是能夠打破時(shí)間的界線,這個(gè)駭人的可能性使一些物理學(xué)家試圖用復(fù)雜的方式解釋 Aspect的發(fā)現(xiàn)。但是它也激發(fā)了一些更有革命性的解釋。
好了,文章到這里就結(jié)束啦,如果本次分享的c語言函數(shù)定義與聲明:詳解、語法、范例和c語言的函數(shù)聲明問題對(duì)您有所幫助,還望關(guān)注下本站哦!
本文鏈接:http:///bian/218823.html