C語言中函式什麼時候宣告?什麼時候定義?最好舉例說明

時間 2021-08-30 10:38:27

1樓:匿名使用者

函式可以在呼叫函式的函式(比如main函式)之前定義,這樣就無需宣告瞭;

舉例:int add(int x,int y)  //在編譯程式編譯到main的呼叫add之處時,由於已經編譯過add的函式了,因此編譯程式已經知曉呼叫規則,因此可以省略宣告語句

void main()

如果函式在呼叫函式的函式之後定義,為了通知編譯程式要呼叫函式的格式,需要在呼叫函式的函式前新增函式的宣告。

舉例:int add(int x,int y); //函式宣告也可以簡單地寫成int add(int,int);通知編譯程式main中呼叫add的規則即可

void main()

int add(int x,int y)

2樓:匿名使用者

宣告在定義的前面。

如果你需要呼叫一個函式,但是這個函式的定義段在呼叫位置的後面。即呼叫的時候,該函式還未定義好,會報錯。我們可以先宣告有這個函式,這樣就不會報錯,編譯器就能在後面的**段找到該函式定義**。

比如:void add1();//宣告add1函式int main()

void add1()

3樓:手機使用者

如果函式在主函式之後,則需要在主函式之前進行宣告,如:

void aaa();

main()

void aaa()

如果程式寫在主函式之前,則不需要宣告:

void aaa()

main()

[c語言]函式的定義中什麼時候要在main之前宣告函式?

4樓:匿名使用者

樓主記住這麼一個原則就行了。

函式要先宣告後使

用。即函式版呼叫之前權一定要知道該函式的型別。

如果fun1在main函式之前已經實現,那麼main函式呼叫fun1的時候就已經知道fun1函式的型別了,就不需要宣告瞭。

如果fun1在main函式之後實現,那麼呼叫之前一定要先宣告。

c語言中「函式的定義不可以巢狀,但函式的呼叫可以巢狀」是什麼意思???最好能舉例子說明!謝謝

5樓:匿名使用者

函式的定bai義不可以巢狀du

定義函zhi數a

void a() //定義a函式dao

},這是不對的,

但函式的呼叫

專可以嵌屬套

在主函式中呼叫x函式,x函式在呼叫y函式

void y() 定義y函式

void x() 定義x函式

void main()

6樓:放縱思想

首先你要明白函式的「定義」和「呼叫」各是什麼意思。

「函式的呼叫可以巢狀」這種說法不太準確,應該是說函式之間可以互相呼叫,

即a函式可以呼叫b函式,b函式可以呼叫a函式。

7樓:匿名使用者

函式的定義不可copy

以巢狀定義函bai數dua

void a() //定義a函式

},這是不對的,zhi

但函式的調

用可以巢狀

在主dao函式中呼叫x函式,x函式在呼叫y函式void y() 定義y函式

void x() 定義x函式

void main()

8樓:丁家宜大寶

所謂的定義bai函式就du是在一個函式外宣告一個zhi函式 可以是函式頭dao 如int fun(int ,int )屬於函式聲版明

函式體可權以在後來再輸入 但是一定要先宣告再使用 所謂不能巢狀定義就是不能再一個函式體(任何一個函式)內部宣告一個函式 比如在main函式內就不能有int fun(int ,int )定義 這樣是錯誤的

一個程式是從main函式開始的 也是從main函式結束的 這樣在main函式內呼叫其它函式就不矛盾了 如printf就是一個函式 被呼叫了 屬於巢狀呼叫

巢狀呼叫可以舉個n的階乘的例子

int fun(int n)

即為巢狀呼叫 這個函式自己呼叫自己

c語言中什麼時候該用return什麼時候不用

當你定義函式的時候才要用,有些函式有返回值,也就是呼叫一個函式之後,該函式返回一個值給你。如 int fun int a 這個函式就要用return 而且return 後面跟的變數或字面常量應該是整形才對,如果是不能自動轉換成整形的資料如double型的,系統就會報錯,但是如果return一個sho...

c語言中static可以加在函式宣告前嗎?如果可以是

學霸 可以。私有函式只有該類的成員變數或成員函式可以訪問。在c語言中,也有 private函式 它就是接下來要說的static函式,完成物件導向程式設計中private函式的功能。當你的程式中有很多個原始檔的時候,你肯定會讓某個原始檔只提供一些外界需要的介面,其他的函式可能是為了實現這些介面而編寫,...

c語言中清屏函式是什麼,C語言中清屏函式是什麼?

莊生曉夢 c語言中清屏函式是為清除螢幕上的輸出功能,用法是 void clrscr void 程式例 include int main int i clrscr for i 0 i 20 i cprintf d r n i cprintf r npress any key to clear scre...