- N +

c語(yǔ)言中函數(shù)聲明可否在main函數(shù)外?

其實(shí)c語(yǔ)言中函數(shù)聲明可否在main函數(shù)外?的問題并不復(fù)雜,但是又很多的朋友都不太了解c語(yǔ)言函數(shù)聲明有什么用,因此呢,今天小編就來為大家分享c語(yǔ)言中函數(shù)聲明可否在main函數(shù)外?的一些知識(shí),希望可以幫助到大家,下面我們一起來看看這個(gè)問題的分析吧!

C語(yǔ)言中函數(shù)聲明時(shí)放在主函數(shù)外和主函數(shù)內(nèi)有什么區(qū)別

函數(shù)聲明時(shí),若將其放置在主函數(shù)之外,意味著該函數(shù)可以在主函數(shù)以及其他函數(shù)中被調(diào)用,具有更高的復(fù)用性。而如果將函數(shù)聲明放在主函數(shù)內(nèi)部,則僅在主函數(shù)中可見,其調(diào)用范圍受到限制。這種差異主要體現(xiàn)在函數(shù)的可見性和復(fù)用性上。將函數(shù)聲明放在主函數(shù)之外,可以提高代碼的組織性和可維護(hù)性。

main函數(shù)放在最前面,結(jié)構(gòu)條例比較清晰,讀起來方便,先main,然后main調(diào)用的其他函數(shù)。這樣的話就需要在main前聲明被調(diào)函數(shù)。代價(jià)就是如果被調(diào)函數(shù)發(fā)生變化,譬如函數(shù)名稱、參數(shù)、返回值類型等發(fā)生變化,那么聲明的地方也要同步改變。

程序代碼區(qū):存放函數(shù)體的二進(jìn)制代碼。綜上所述,局部變量空間是很小的,我們開一個(gè)a[1000000]就會(huì)導(dǎo)致棧溢出;而全局變量空間在Win 32bit 下可以達(dá)到4GB,因此不會(huì)溢出。

那個(gè)時(shí)期的C語(yǔ)言,很多情況下int可以不寫。例如main()函數(shù)返回值的類型為int就可以不寫。 但是需要特別說明的是,這種“省勁”的寫法已經(jīng)過時(shí),從C90標(biāo)準(zhǔn)起,這種寫法就步入了被逐步拋棄的過程(盡管當(dāng)時(shí)還沒有完全立即廢止)。

主要區(qū)別我覺得有以下一些 第一:聲明一般在主函數(shù)之前,而定義不一定。第二:定義也是一種聲明(放在主函數(shù)前面),但聲明不代表定義。第三:根據(jù)c++ primer中的闡述,函數(shù)聲明只是告訴系統(tǒng)有這樣一個(gè)函數(shù),但并不給他分配內(nèi)存空間,只有當(dāng)函數(shù)被定義后才會(huì)分配內(nèi)存空間。

可以放在main()函數(shù)后面,需要在mian()函數(shù)前面做個(gè)函數(shù)申明。在一個(gè)源文件中定義函數(shù)且在另一個(gè)文件中調(diào)用函數(shù)時(shí),函數(shù)聲明是必需的。在這種情況下,應(yīng)該在調(diào)用函數(shù)的文件頂部聲明函數(shù)。

C語(yǔ)言中函數(shù)聲明的位置有幾種?

在調(diào)用的函數(shù)前定義函數(shù),此時(shí)可以不需要聲明。在調(diào)用的函數(shù)前聲明。在調(diào)用的函數(shù)里面也可以聲明。在其他文件的頭文件*.h文件里面聲明,然后*.c文件直接調(diào)用頭文件也可以。如果你把子函數(shù)放到MAIN函數(shù)外,則必須在定義的時(shí)候先聲明。如果把 子函數(shù)放在MAIN函數(shù)中就不需要提前聲明了。

變量聲明部分用于說明將要使用的變量,因?yàn)樵贑語(yǔ)言中變量使用前必須先聲明。執(zhí)行部分則是程序要執(zhí)行的具體語(yǔ)句。關(guān)于它們之間的區(qū)別,可以用非正式的語(yǔ)言來描述:以分號(hào)結(jié)束的C語(yǔ)言部分是語(yǔ)句,而帶有括號(hào)的部分則代表函數(shù)。當(dāng)然,這種觀點(diǎn)并不嚴(yán)謹(jǐn),只是幫助理解的一種方式。

在C語(yǔ)言中,聲明(Declaration)這個(gè)詞的本義就是指定標(biāo)識(shí)符的意義和性質(zhì)(A declaration specifies the interpretation and attributes of a set of identifiers.),某個(gè)標(biāo)識(shí)符的定義(Definition)同時(shí)也是這個(gè)標(biāo)志符的“聲明”(Declaration)。函數(shù)定義(Function definition)則意指包括函數(shù)體。

對(duì)被調(diào)用函數(shù)的說明有兩種方式:外部說明和內(nèi)部說明。

C語(yǔ)言中函數(shù)聲明與定義的概念如下:函數(shù)聲明: 目的:用于告知編譯器有關(guān)函數(shù)的細(xì)節(jié),包括函數(shù)名、參數(shù)類型以及返回類型。 內(nèi)容:通常包含函數(shù)名、參數(shù)類型列表以及返回類型。 位置:函數(shù)聲明一般出現(xiàn)在函數(shù)定義之前,或者在頭文件中進(jìn)行聲明,以便在其他源文件中使用該函數(shù)。

函數(shù)聲明可以放在main函數(shù)前面嗎

可以放在main()函數(shù)后面,需要在mian()函數(shù)前面做個(gè)函數(shù)申明。在一個(gè)源文件中定義函數(shù)且在另一個(gè)文件中調(diào)用函數(shù)時(shí),函數(shù)聲明是必需的。在這種情況下,應(yīng)該在調(diào)用函數(shù)的文件頂部聲明函數(shù)。如:include stdio.h /* 函數(shù)聲明 */ int max(int num1, int num2);int main (){......函數(shù)聲明會(huì)告訴編譯器函數(shù)名稱及如何調(diào)用函數(shù)。函數(shù)的實(shí)際主體可以單獨(dú)定義。

是一種報(bào)錯(cuò),報(bào)錯(cuò)的原因是:函數(shù)申明放在main函數(shù)的外面,而且申明的是fac函數(shù),但使用的時(shí)候卻寫成了f,所以造成結(jié)果的不正確。

main函數(shù)放在最前面,結(jié)構(gòu)條例比較清晰,讀起來方便,先main,然后main調(diào)用的其他函數(shù)。這樣的話就需要在main前聲明被調(diào)函數(shù)。代價(jià)就是如果被調(diào)函數(shù)發(fā)生變化,譬如函數(shù)名稱、參數(shù)、返回值類型等發(fā)生變化,那么聲明的地方也要同步改變。

C語(yǔ)言,子函數(shù)在主函數(shù)的后面,問:我把子函數(shù)聲明寫在main函數(shù)的...

1、C語(yǔ)言,子函數(shù)在主函數(shù)的后面,就需要把子函數(shù)聲明寫在main函數(shù)的前面;如果子函數(shù)在主函數(shù)的前面,子函數(shù)就不需要聲明,在main函數(shù)里可以直接調(diào)用。可以寫在前面,注意前面的形參聲明也要在后面加上;分號(hào)。

2、例如main()函數(shù)返回值的類型為int就可以不寫。 但是需要特別說明的是,這種“省勁”的寫法已經(jīng)過時(shí),從C90標(biāo)準(zhǔn)起,這種寫法就步入了被逐步拋棄的過程(盡管當(dāng)時(shí)還沒有完全立即廢止)。C99廢除了隱式函數(shù)聲明法則(remove implicit function declaration),另外,省略main()前面的int也已經(jīng)不再容許了。

3、在調(diào)用的函數(shù)前定義函數(shù),此時(shí)可以不需要聲明。在調(diào)用的函數(shù)前聲明。在調(diào)用的函數(shù)里面也可以聲明。在其他文件的頭文件*.h文件里面聲明,然后*.c文件直接調(diào)用頭文件也可以。如果你把子函數(shù)放到MAIN函數(shù)外,則必須在定義的時(shí)候先聲明。如果把 子函數(shù)放在MAIN函數(shù)中就不需要提前聲明了。

用戶定義函數(shù)在main函數(shù)之前是否需要聲明?

1、用戶定義函數(shù)在main函數(shù)之前使用時(shí),需要先進(jìn)行聲明。以下是詳細(xì)解釋:函數(shù)聲明的重要性:在C語(yǔ)言等編程語(yǔ)言中,如果在一個(gè)函數(shù)中調(diào)用另一個(gè)自定義函數(shù),而這個(gè)自定義函數(shù)的定義位于調(diào)用它的函數(shù)之后,那么在調(diào)用之前需要先對(duì)該自定義函數(shù)進(jìn)行聲明。

2、可以放在main()函數(shù)后面,需要在mian()函數(shù)前面做個(gè)函數(shù)申明。在一個(gè)源文件中定義函數(shù)且在另一個(gè)文件中調(diào)用函數(shù)時(shí),函數(shù)聲明是必需的。在這種情況下,應(yīng)該在調(diào)用函數(shù)的文件頂部聲明函數(shù)。

3、main函數(shù)的位置對(duì)程序編譯有一定的影響。編譯器在編譯時(shí)是按順序逐行處理代碼的,但程序的執(zhí)行是從main函數(shù)開始的。因此,編譯器需要先找到main函數(shù),確認(rèn)main函數(shù)編譯無誤后,編譯過程即視為完成。

4、如果函數(shù)定義放在main函數(shù)之前,那么就不需要再次聲明這個(gè)函數(shù),直接在main函數(shù)里面調(diào)用即可。如果想讓一個(gè)函數(shù)只能被main函數(shù)調(diào)用,而不能被其他文件或者其他函數(shù)調(diào)用,可以把這個(gè)函數(shù)放在一個(gè)無名的命名空間里面。

如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

返回列表
上一篇:
下一篇: