C語言中怎麼區分函式宣告和函式原型的概念?

2025-07-08 20:00:08 字數 5740 閱讀 7207

1樓:網友

函式原型有具體的執行語句,而函式宣告只有乙個格式。

如int fun(int x);就是函式宣告。

int fun(int x)就是原型。

c語言中函式的定義格式是什麼,函式原型宣告的語法格式?

2樓:天雲一號

函式定義就是規定函式的格式與功能。

函式宣告就是在函式呼叫之前進行的一種說明。

下面舉例說明兩者的語法格式:

#include

int fun(int a, int b); // 函式的宣告void main()

下面的fun函式就是函式的定義。

int fun(int a, int b)注:如果被調函式(上例中為fun函式)寫在呼叫處之前,可以不宣告(本例是現在呼叫處 (c = fun(x+y);)之後)。

3樓:網友

函式原型:返回型別 函式名(引數型別列表);

比如int max(int*, int);

函式的定義:把函式原型的最後面的分號換成函式體。

比如:int max(int *data, int count)

4樓:小豬的知識庫

函式返回值 函式名(引數);

這就是函式宣告。例:兩個數求和函式的宣告:

int sum(int a,int b);

5樓:網友

函式返回值 函式名(引數型別 引數名);

如 int a( int b)

或void b(char c)

6樓:網友

例如int name (引數性質 引數)

在c語言中函式定義跟函式宣告有什麼區別?

7樓:網友

int fun(int a, int b);

函式定義:int fun(int a,int b)宣告就象是定義的頭部,比較簡略,函式是用來呼叫的,如果函式定義部寫到呼叫的位置後面,執行到呼叫位置,

c語言中函式原型宣告部分是什麼意思

8樓:

函式原型申明就是在main函式前面需要申明一下,否則main函式呼叫這個函式時會找不到,原型申明可以不定義具體的函式體,然後可以把函式體的具體部分放在main函式後面再來單獨定義,這樣程式整體上更整潔,要不然自定義函式都在main函式的前面就定義了,那**一多還得找主函式。

函式宣告與函式定義的區別

9樓:我是你男神

函式的宣告與函式的定義形式上十分相似,但是二者有著本質上的不同。宣告是不開闢記憶體的,僅僅告訴編譯器,要宣告的部分存在,要預留一點空間。定義則需要開闢記憶體。

函式的定義。

函式的定義是乙個完整的函式單元,包含函式型別、函式名、形參及形參型別、函式體等。在程式中,函式的定義只能有一次。函式首部與花括號間不加分號。

函式的宣告。

函式宣告只是對編譯系統的乙個說明:函式宣告是對定義的函式的返回值的型別說明,以通知系統在本函式中所呼叫的函式是什麼型別。不包含函式體(或形參),呼叫幾次該函式就應在各個主調函式中做相應宣告。

函式宣告是乙個說明語句,必須以分號結束。

c語言編譯系統是由上往下編譯的。一般被調函式放在主調函式後面的話,前面就該有宣告。不然c由上往下的編譯系統將無法識別。

正如變數必須先宣告後使用一樣,函式也必須在被呼叫之前先宣告,否則無法呼叫!函式的宣告可以與定義分離,要注意的是乙個函式只能被定義一次,但可以宣告多次。

函式宣告由函式返回型別、函式名和形參列表組成。形參列表必須包括形參型別,但是不必對形參命名。這三個元素被稱為函式原型,函式原型描述了函式的介面。

定義函式的程式設計師提供函式原型,使用函式的程式設計師就只需要對函式原型即可。

10樓:網友

對函式而言,函式的宣告是函式的原型,函式的定義是對函式功能的定義。對被調函式的宣告是在主調函式的宣告部分中的,而函式的定義顯然是不在宣告部分的範圍內的,它是個獨立的模組。

對變數而言,在宣告部分出現的的變數的情況有兩種:一種是需要建立儲存空間的,(如"int a;"),另一種是不需要建立儲存空間的(如「extern a;」)前者為定義性宣告,或簡稱為定義;後者為引用性宣告。

廣義滴說,宣告包括定義,但並非所有的宣告都是定義。對於「int a;」而言,它既是宣告又是定義;而「extern a;」,它是宣告而不是定義。

一般為了敘述方便,把建立儲存空間的宣告稱定義,而把不需要建立儲存空間的宣告稱為宣告,此處為狹義的宣告,但好理解。

11樓:網友

好吧,這樣和你說。

void fun();//這個叫函式的宣告main()

void fun()//這個叫函式的定義。

首先這個程式執行時,電腦是從上到下執行的。

也就是說假如沒有函式的宣告那一句,當函式執行到函式呼叫這一句時,電腦不知道fun是什麼東西,他不知道在下面有這個函式的具體實現。因此,需要宣告下,告訴電腦,確實有這個東西存在,是函式,在下面有定義。

12樓:哈哈嗚呼

函式宣告一定要放在主函式之前,因為系統要先識別才能呼叫,函式定義則是對函式的解釋,是函式演算法的說明,可以放在主函式後面。

13樓:網友

函式宣告表示有這麼個函式了,函式定義就是具體實現了。

舉個例子:函式宣告:

int fun(int a, int b);

函式定義:int fun(int a,int b)函式宣告就像是函式定義的頭部,比較簡略,函式是用來呼叫的,如果函式定義部寫到呼叫的位置後面,執行到呼叫位置,後面根本沒執行就找不到了,當然報錯了,就要在前面加宣告,表示有這個函式,反之先寫函式體,後呼叫宣告就用不了,不在同一原始檔,道理也是如此。

14樓:網友

函式的宣告指 變數宣告瞭,並且在宣告之後。程式可以用此變數了。而函式的定義 則是給函式賦予一定的初值。

例如 int a; 是聲名,在宣告之後可用a這個變數。 int a=5;是定義。

15樓:網友

函式宣告:

返回型別 函式名(引數型別1 引數名1,··引數型別n 引數名n);

如:int fun(int a, int b);

void display();

float fn1(float x);

函式定義:返回型別 函式名(引數型別1 引數名1,··引數型別n 引數名n)

如:int fun(int a,int b)在程式中,如果main()函式在前,必須在mian()中寫函式宣告;如果函式在main()前面,可以不在main()中寫函式宣告!

16樓:網友

函式宣告,只有函式頭,比如主函式main裡要呼叫add函式,可是add函式的定義放在main後面。就要在主函式先宣告下。

int add(int a, int b);

函式定義,有函式頭和函式體。

int add(int a, int b)

17樓:石頭翔子

函式的宣告是相當於定義了乙個函式的名字,即在程式中該名字就代表了一種操作,但宣告中並不會說明該函式是怎麼產生作用的;而函式的定義就是具體說明了函式的具體作用,即實現過程。

例如 void output(int x);//是乙個函式的宣告,它一般位於主函式的前面;

void main()

void output(int x)//函式的定義,即指定了函式的具體操作。

函式如何定義、呼叫及宣告原型?

18樓:網友

函式必須先宣告先呼叫,宣告規則如下:

int fun(int a);

結構: 返回型別 函式名(引數列表);

注意,最後必須有乙個分號,說明這個函式是乙個宣告的函式而沒有定義,它的定義在別的地方。

定義的話就是把分號去掉,定義它的函式體就行了,比如:

int fun(int a)

函式的呼叫有一點要注意:如果函式的定義放在被呼叫的前面,那麼可以不用宣告這個函式而直接進行呼叫。

19樓:網友

#include //標頭檔案包含宣告,主要是一些函式原型宣告等。

int max(int, int); 函式原型宣告,不帶形式引數名。

int min(int a, int b); 函式原型宣告,帶形式引數名。

int max(int a, int b) /函式的定義,必須帶形式引數名,在主調函式前定義,當然前面的函式原型宣告變得多餘了。

void main() 主函式,也就是整個程式的入口,可以不帶形式引數,也可以帶形式引數。

int min(int a, int b) /函式的定義,可以在主調函式後定義,但前提是主調函式前必須有函式原型宣告。

c語言中函式原型是什麼意思,簡潔的說下

20樓:風若遠去何人留

函式原型就是函式本身定義的形式。

函式的格式為:

return_type func_name(arg_list);

所以函式的原型,就是根據函式名查詢到的定義或者宣告的形式,通過原型可以確認函式的返回值型別(return_type),以及需要多少個引數,每個引數的型別是什麼(arg_list)。

這樣才能夠確定,如何呼叫函式才是正確的。

21樓:長夜

回答同上 你寫的沒有錯,void butler(void)就是乙個自定義的函式原型,前乙個void表示butler()函式不返回乙個值,後乙個void則是表示不接受任何形式的引數。

22樓:網友

函式原型就是使用乙個函式前,對乙個函式的預先的乙個宣告,說明下面要用到這樣乙個函式。函式原型一般由函式名、參數列、返回值型別組成。函式原型不是必需的。

如果你對這個函式的完整定義出現在使用這個函式之前,就不需要函式原型了。char get(int i)這樣乙個函式在使用時,就像這樣呼叫:c=get(a);其中a是預先定義好的乙個int,然後函式執行時,a的值就是get函式中的i,get函式中return的值,就賦值給主調函式里的c.

忘得也差不多了,這個還是複製過來的,你應該懂點了。

請問c語言中函式定義,函式宣告和函式呼叫的區別?

23樓:

函式宣告指函式原型宣告,只有函式名,函式型別,引數個數和型別,無函式體。一般放在主函式前。逗號結尾。

函式定義,除上述外,去掉結尾逗號,加函式體。可放在main函式後面,也可放在main函式前面。放在main函式前面則不要寫函式原型宣告。

24樓:雲澹楓卿

函式宣告格式如:

int max(int );

函式呼叫是你在某乙個函式中去用它。

25樓:炸屍男

函式宣告就是宣告有這麼乙個函式:

比如 int number; 就是說 有乙個整數叫number函式定義就是給乙個函式賦值:

比如在宣告過函式number以後,再說 number = 5; 意思就是說把剛才說的那個叫number的整數的值定義為5

函式呼叫就是使用乙個函式:

在宣告和定義完number以後 我們再說answer = number * 3; 意思就是answer等於number的3倍 在這個計算過程中我們使用了這個叫number的函式 所以就叫函式呼叫了。

c語言中宣告子函式和沒有宣告子函式有什麼區別

子函式在宣告後可以先呼叫,後定義 避免編譯器猜資料。操作方法如下 1 函式的宣告,函式有兩種型別,一種是有返回值的,前面用int float double char 來定義,如int f int n 前面的int就是返回值型別。2 如果函式不需要返回值,那麼就用void來寫在前面,如void f i...

c語言怎麼呼叫庫函式求函式值,c語言中不用庫函式怎麼求冪指數

c cos 3.5678 就是呼叫庫函式。include之後,與使用你自己定義的函式的方法一樣,直接用。f 不指定寬度,整數部分全部輸出並輸出6位小數。m.nf 輸出共佔m列,其中有n位小數,如數值寬度小於m左端補空格。m.nf 輸出共佔m列,其中有n位小數,如數值寬度小於m右端補空格。c語言中不用...

c語言中random函式怎麼用

random函式 math.random 可以產生出0 1之間的任意小數,例如0.0105901374530933 或0.872525005541986,有幾個其他的函式可以用來改變產生的數字,從而可以更好的在影片中使用 math.round math.ceil math.floor 這幾個函式都是...