1樓:超可愛
函式說明:“說明”的意思,即表明當前的程式檔案中有這個函式。
函式定義:“定義”的意思,即為該函式下定義——這個函式具體有什麼功能(函式體)。
2. 具體請先看**:
#include
int sum(int a, int b); // 函式宣告
void main()
int sum(int a, int b) // 函式定義
解釋一下:
由於c語言的編譯,是對c/cpp檔案的內容從上至下編譯。一般子函式(使用者定義的函式)放在主函式(main函式)後面的話,main函式前面就該有宣告,不然編譯系統將無法識別到子函式。
例如上面這個例子,如果將前面的函式宣告註釋掉,這個程式執行到main函式中的sum(num1, num2)時就會報錯,因為沒有在main函式前編譯到sum(a, b)這個函式,所以執行中就會識別不了sum這個函式。(如下圖所示)
3. 當然,通常情況下,我們也可以直接將整個子函式的函式體(函式定義)放在main前面,這樣就可以省略掉函式宣告的部分。
#include
int sum(int a, int b) // 函式定義
void main()
以上這個程式同樣是可以正確編譯執行的。
2樓:廉玉榮妙珍
函式原型放在函式定義之前,先宣告相應函式的特性。區別很簡單,函式原型結束有分號,而函式的定義結束沒分號。
例如:int
sum(int
a,int
b);函式原型
intsum(int
a,int
b)函式定義
請問c語言中函式定義,函式宣告和函式呼叫的區別?
3樓:
函式宣告指函式原型宣告,只有函式名,函式型別,引數個數和型別,無函式體。一般放在主函式前。逗號結尾。
函式定義,除上述外,去掉結尾逗號,加函式體。可放在main函式後面,也可放在main函式前面。放在main函式前面則不要寫函式原型宣告。
4樓:雲澹楓卿
函式宣告格式如:
int max(int );
函式呼叫是你在某一個函式中去用它
5樓:炸屍男
函式宣告就是宣告有這麼一個函式:
比如 int number; 就是說 有一個整數叫number函式定義就是給一個函式賦值:
比如在宣告過函式number以後,再說 number = 5; 意思就是說把剛才說的那個叫number的整數的值定義為5
函式呼叫就是使用一個函式:
在宣告和定義完number以後 我們再說answer = number * 3; 意思就是answer等於number的3倍 在這個計算過程中我們使用了這個叫number的函式 所以就叫函式呼叫了
6樓:紅領巾飄過
函式宣告是告訴編譯器你有這麼一個函式。
函式定義是具體實現函式功能的**。
函式呼叫是富裕函式一定的引數,使用函式。
7樓:匿名使用者
樓主可以這樣想,c語言中,無論是常量,變數,函式,只有先定義才能使用的。在函式定義時,大腦要往一般的常量,變數定義的方向,切忌先不要想函式的別的。定義好後,把函式的定義先放一邊,不管它。
接著是函式宣告,大家都知道,c語言是有一個主函式main()和0或n個普通函式組成的。由於當**越長,用到的函式就越多,為了減少函式的混淆,所以要有個函式名,就像老師點名一樣,宣告一個函式,就如點一個學生的名字。
總之,函式定義是系統要求的,不定義就錯誤,而函式宣告實際上不定義也行,但為了方便和減少錯誤,人為規定要宣告。
8樓:匿名使用者
函式宣告是告訴編譯器你有這麼一個函式。
c語言中 宣告子函式和沒有宣告子函式有什麼區別
9樓:12345額時代
子函式在宣告後可以先呼叫,後定義;避免編譯器猜資料。操作方法如下:
1、函式的宣告,函式有兩種型別,一種是有返回值的,前面用int float double char 來定義,如int f(int n);前面的int就是返回值型別。
2、 如果函式不需要返回值,那麼就用void來寫在前面,如void f(int n);注意宣告後面加分號。
3、 函式的定義,有返回值的函式一般就是 int f(int) 。注意f()沒有分號。
4、沒有返回值的函式結構為void f(){函式內容,發f(int n)後面也沒有分號。
5、看一下函式的呼叫,有返回值的一般語言定義一個變數如c=f(n)。
10樓:匿名使用者
因為,程式的編譯都是從main函式開始的。所以當要呼叫的子函式在main 函式之前定義時,就不需要再在main函式中宣告子函式了,如果要呼叫的子函式在main函式後面時,就必須在main函式中宣告,否則,編譯將出現錯誤。
如果,怕忘了,在main函式中宣告子函式,建議你養成在main函式前定義子函式的習慣,計算機等級考試裡的子函式,也都是在main函式之前定義的。
希望對你有幫助!
11樓:明月看盡滄桑
子函式在宣告後可以先呼叫,後定義;避免編譯器猜資料。如下:
12樓:匿名使用者
基本上來說是沒有多大的區別的。
區別可能就是在你的呼叫函式在你的被呼叫函式之前出現的。那麼這個時候你要是不宣告被呼叫函式的話,就會報錯的。然後你在前面加上函式的宣告就沒有問題了。
但是如果你的被呼叫函式在你的呼叫函式之前出現呢,即實現,那麼這個時候就是不會有什麼影響的。
比如說:函式a是呼叫函式,函式b是被呼叫函式可以這樣寫
void a()
void b()
如果這樣寫的話,那麼就是不會有什麼問題的。
但是如果像下面這樣寫的話,就會有問題了。
voidb()
void a()
//程式除錯的時候會報錯的。
13樓:匿名使用者
子函式與主函式之間的順序需要發生改變而已.
主函式在前,必須宣告,要不主函式不能呼叫。
主函式在後,就不必宣告。
在c語言中函式定義跟函式宣告有什麼區別?
14樓:
int fun(int a, int b);
函式定義:
int fun(int a,int b)宣告就象是定義的頭部,比較簡略,函式是用來呼叫的,如果函式定義部寫到呼叫的位置後面,執行到呼叫位置,
請問C語言中函式定義,函式宣告和函式呼叫的區別
函式宣告指函式原型宣告,只有函式名,函式型別,引數個數和型別,無函式體。一般放在主函式前。逗號結尾。函式定義,除上述外,去掉結尾逗號,加函式體。可放在main函式後面,也可放在main函式前面。放在main函式前面則不要寫函式原型宣告。 雲澹楓卿 函式宣告格式如 int max int 函式呼叫是你...
OCI常用函式的函式說明,OCI常用函式的大致步驟
一 定義並初始化所需各變數 envhp srvhp errhp svchp authp hndlp stmthp 等等 二 連線資料庫 1 ociinitialize。初始化oci程式環境 2 ocienvinit。初始化oci環境控制代碼 3 ocihandlealloc。分配各控制代碼,需要分配...
c語言函式定義中關於返回函式的疑問
node search list node node,int compare void const void const void const desired value 1 node 表示返回值為乙個node 結點指標。2 search list 函式名 3 node node 乙個結點指標 4 ...