c語言問題,c語言中的函式宣告與定義有什麼好處

時間 2021-08-30 10:50:24

1樓:金色潛鳥

通常把能實現某一功能操作或運算的部分抽出來,寫成函式。

函式宣告與定義的好處是 主程式 比較簡潔,閱讀性強。特別是在需要多次呼叫的情況下,寫成函式則更好。

你的程式中,函式功能是實現兩個變數相減,返回它們的差。

minus( 9 , 4 ); 閱讀性強,minus 是英文「減」,容易聯想到 9-4 減法得多少。

程式總行數少了 -- 比較簡潔。

由於程式比較簡單,優越性不明顯。設想,如果函式用來計算一個積分,或用來計算一個快速傅立葉變換,或迭代法解一個方程。。。而且主程式中還要多次呼叫,優越性就明顯了。

採用函式,還有好處,特別是很大的程式,可以多人合作寫程式,提高了工作效率,節省了時間。例如小張編寫積分函式,小李編寫迭代法解一個方程,你寫主程式。你的主程式裡 只要寫函式呼叫--寫函式名,填入實際引數就成了。

-- 實際上,我們用的庫程式,全是別人寫的,例如 printf(),scanf(), 我們只管呼叫,。。。大大提高了工作效率,節省了時間和成本。

2樓:走建興

在函式裡面定義的變數是區域性變數,比如int iresult在主函式和int minus是兩個名字相同但儲存地址不一樣的變數,全域性變數在任何一個函式都可以呼叫,區域性變數只能在本函式中使用。

3樓:匿名使用者

從功能上沒有區別,但是從計算機發展的角度來看,函式是為了滿足封裝和複用才採用。從重複上來看函式更好。

4樓:匿名使用者

這個程式太短了,沒區別,上百條的長程式中,有部分語句需要來回使用的,把這些語句作為一個函式,可以節省很多的空間,

在c語言中,函式定義跟函式宣告有什麼區別有什麼不同之出?

5樓:

int  fun(int a, int b);

函式定義:

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

6樓:匿名使用者

定義是實現功能的**,本質是需要編譯器編譯成二進位制**的。

函式宣告對函式的描述,用於告訴編譯器本檔案中提到的這個函式應該按照宣告的形式去呼叫。

7樓:

1.函式定義可以定義在標頭檔案中,注意在其之前新增extern。

2.函式定義,也可以定義在程式首部,只要在函式定義前就可以了。

3.void fun(void);//宣告4.void fun(void)//定義

5.有時也會有人選擇,不寫函式宣告,直接再呼叫函式前定義函式。

8樓:鬼扯石室

函式宣告只是向呼叫函式(例如main)函式說:有這個函式在,需要呼叫它

所以只需要給出函式原型即可,譬如:int func(int a);

函式定義則是要將這個函式具體的函式體實現出來,就需要寫出一個完整的函式

譬如:int func(int a)

有時候我們直接將完整函式寫到呼叫函式(例如main)中,就免去了單獨的函式宣告。

如果希望將函式體寫在呼叫函式之外,就需要在呼叫函式中專門做函式宣告瞭。

9樓:扶桑看天

宣告嘛表示有這麼個函式了,定義就是具體實現了,舉個例子:

函式宣告:

int fun(int a, int b);

函式定義:

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

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

10樓:

int  fun(int a, int b);

函式定義:

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

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

11樓: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)。

12樓:匿名使用者

因為,程式的編譯都是從main函式開始的。所以當要呼叫的子函式在main 函式之前定義時,就不需要再在main函式中宣告子函式了,如果要呼叫的子函式在main函式後面時,就必須在main函式中宣告,否則,編譯將出現錯誤。

如果,怕忘了,在main函式中宣告子函式,建議你養成在main函式前定義子函式的習慣,計算機等級考試裡的子函式,也都是在main函式之前定義的。

希望對你有幫助!

13樓:明月看盡滄桑

子函式在宣告後可以先呼叫,後定義;避免編譯器猜資料。如下:

14樓:匿名使用者

基本上來說是沒有多大的區別的。

區別可能就是在你的呼叫函式在你的被呼叫函式之前出現的。那麼這個時候你要是不宣告被呼叫函式的話,就會報錯的。然後你在前面加上函式的宣告就沒有問題了。

但是如果你的被呼叫函式在你的呼叫函式之前出現呢,即實現,那麼這個時候就是不會有什麼影響的。

比如說:函式a是呼叫函式,函式b是被呼叫函式可以這樣寫

void a()

void b()

如果這樣寫的話,那麼就是不會有什麼問題的。

但是如果像下面這樣寫的話,就會有問題了。

voidb()

void a()

//程式除錯的時候會報錯的。

15樓:匿名使用者

子函式與主函式之間的順序需要發生改變而已.

主函式在前,必須宣告,要不主函式不能呼叫。

主函式在後,就不必宣告。

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

16樓:

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

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

17樓:雲澹楓卿

函式宣告格式如:

int max(int );

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

18樓:炸屍男

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

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

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

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

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

19樓:紅領巾飄過

函式宣告是告訴編譯器你有這麼一個函式。

函式定義是具體實現函式功能的**。

函式呼叫是富裕函式一定的引數,使用函式。

20樓:匿名使用者

樓主可以這樣想,c語言中,無論是常量,變數,函式,只有先定義才能使用的。在函式定義時,大腦要往一般的常量,變數定義的方向,切忌先不要想函式的別的。定義好後,把函式的定義先放一邊,不管它。

接著是函式宣告,大家都知道,c語言是有一個主函式main()和0或n個普通函式組成的。由於當**越長,用到的函式就越多,為了減少函式的混淆,所以要有個函式名,就像老師點名一樣,宣告一個函式,就如點一個學生的名字。

總之,函式定義是系統要求的,不定義就錯誤,而函式宣告實際上不定義也行,但為了方便和減少錯誤,人為規定要宣告。

21樓:匿名使用者

函式宣告是告訴編譯器你有這麼一個函式。

c語言中函式宣告中的變數可以和函式定義中的變數不一樣嗎?哪一個是形式引數? 10

22樓:匿名使用者

從記憶體角度來講,函式引數是一定儲存到棧區的,函式體內定義的變數可以儲存到棧區,比如區域性變數,也可以儲存到靜態資料區,比如static變數。示例如下:

#include #include void f(int a, int b) int main()

c語言中的strlen函式,C語言中的strlen函式

冰 vs 霰 strlen是測量字串長度的 char d 和char a china char b 是等價的 是陣列的表示形式 而char c 卻是字元陣列所以並不能得到結果 strlen函式測量字串中字元個數,不包括結尾的 0 字元,你的 char c沒有結尾的 0 不是合法的字串,所以結果不對 ...

c語言中的sleep函式,C語言中的sleep 函式

小落影 使用要帶上標頭檔案 include sleep函式 功 能 執行掛起一段時間 用 法 unsigned sleep unsigned seconds 注意 1.在vc中使用帶上標頭檔案 include 在linux下,gcc編譯器中,使用的標頭檔案因gcc版本的不同而不同 include 2...

c語言中函式指標用法,C語言中函式指標用法

函式在記憶體中有一個物理位置,而這個位置是可以賦給一個指標的。一零點函式的地址就是該函式的入口點。因此,函式指標可被用來呼叫一個函式。函式的地址是用不帶任何括號或引數的函式名來得到的。這很類似於陣列地址的得到方法,即,在只有陣列名而無下標是就得到陣列地址。怎樣說明一個函式指標變數呢 為了說明一個變數...