最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言函數(shù)聲明以及函數(shù)原型超詳細(xì)講解示例

 更新時間:2023年02月11日 10:11:00   作者:Elanie1024  
這篇文章主要介紹了C語言函數(shù)聲明以及函數(shù)原型超詳細(xì)講解,C語言代碼由上到下依次執(zhí)行,原則上函數(shù)定義要出現(xiàn)在函數(shù)調(diào)用之前,否則就會報錯。但在實際開發(fā)中,經(jīng)常會在函數(shù)定義之前使用它們,這個時候就需要提前聲明

C語言代碼由上到下依次執(zhí)行,原則上函數(shù)定義要出現(xiàn)在函數(shù)調(diào)用之前,否則就會報錯。但在實際開發(fā)中,經(jīng)常會在函數(shù)定義之前使用它們,這個時候就需要提前聲明。

所謂聲明(Declaration),就是告訴編譯器我要使用這個函數(shù),你現(xiàn)在沒有找到它的定義不要緊,請不要報錯,稍后我會把定義補上。

函數(shù)聲明的格式非常簡單,相當(dāng)于去掉函數(shù)定義中的函數(shù)體,并在最后加上分號;,如下所示:

dataType functionName( dataType1 param1, dataType2 param2 ... );

也可以不寫形參,只寫數(shù)據(jù)類型:

dataType functionName( dataType1, dataType2 ... );

函數(shù)聲明給出了函數(shù)名、返回值類型、參數(shù)列表(重點是參數(shù)類型)等與該函數(shù)有關(guān)的信息,稱為函數(shù)原型(Function Prototype)。函數(shù)原型的作用是告訴編譯器與該函數(shù)有關(guān)的信息,讓編譯器知道函數(shù)的存在,以及存在的形式,即使函數(shù)暫時沒有定義,編譯器也知道如何使用它。

有了函數(shù)聲明,函數(shù)定義就可以出現(xiàn)在任何地方了,甚至是其他文件、靜態(tài)鏈接庫、動態(tài)鏈接庫等。

【實例1】定義一個函數(shù) sum(),計算從 m 加到 n 的和,并將 sum() 的定義放到 main() 后面。

#include<stdio.h>
//函數(shù)聲明
intsum(int m,int n);//也可以寫作int sum(int, int);
intmain(){
int begin =5, end =86;
int result =sum(begin, end);
printf("The sum from %d to %d is %d\n", begin, end, result);
return0;
}
//函數(shù)定義
intsum(int m,int n){
int i, sum=0;
for(i=m; i<=n; i++){
        sum+=i;
}
return sum;
}

我們在 main() 函數(shù)中調(diào)用了 sum() 函數(shù),編譯器在它前面雖然沒有發(fā)現(xiàn)函數(shù)定義,但是發(fā)現(xiàn)了函數(shù)聲明,這樣編譯器就知道函數(shù)怎么使用了,至于函數(shù)體到底是什么,暫時可以不用操心,后續(xù)再把函數(shù)體補上就行。

【實例2】定義兩個函數(shù),計算1! + 2! + 3! + ... + (n-1)! + n!的和。

#include<stdio.h>
// 函數(shù)聲明部分
longfactorial(int n);//也可以寫作 long factorial(int);
longsum(long n);//也可以寫作 long sum(long);
intmain(){
printf("1!+2!+...+9!+10! = %ld\n",sum(10));
return0;
}
//函數(shù)定義部分
//求階乘
longfactorial(int n){
int i;
long result=1;
for(i=1; i<=n; i++){
        result *= i;
}
return result;
}
// 求累加的和
longsum(long n){
int i;
long result =0;
for(i=1; i<=n; i++){
        result +=factorial(i);
}
return result;
}

運行結(jié)果:

1!+2!+...+9!+10! = 4037913

初學(xué)者編寫的代碼都比較簡單,頂多幾百行,完全可以放在一個源文件中。對于單個源文件的程序,通常是將函數(shù)定義放到 main() 的后面,將函數(shù)聲明放到 main() 的前面,這樣就使得代碼結(jié)構(gòu)清晰明了,主次分明。

使用者往往只關(guān)心函數(shù)的功能和函數(shù)的調(diào)用形式,很少關(guān)心函數(shù)的實現(xiàn)細(xì)節(jié),將函數(shù)定義放在最后,就是盡量屏蔽不重要的信息,凸顯關(guān)鍵的信息。將函數(shù)聲明放到 main() 的前面,在定義函數(shù)時也不用關(guān)注它們的調(diào)用順序了,哪個函數(shù)先定義,哪個函數(shù)后定義,都無所謂了。

然而在實際開發(fā)中,往往都是幾千行、上萬行、百萬行的代碼,將這些代碼都放在一個源文件中簡直是災(zāi)難,不但檢索麻煩,而且打開文件也很慢,所以必須將這些代碼分散到多個文件中。對于多個文件的程序,通常是將函數(shù)定義放到源文件(.c文件)中,將函數(shù)的聲明放到頭文件(.h文件)中,使用函數(shù)時引入對應(yīng)的頭文件就可以,編譯器會在鏈接階段找到函數(shù)體。

到此這篇關(guān)于C語言函數(shù)聲明以及函數(shù)原型超詳細(xì)講解示例的文章就介紹到這了,更多相關(guān)C語言函數(shù)聲明內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++常量指針,指針常量,指向常量的常指針詳解

    C++常量指針,指針常量,指向常量的常指針詳解

    剛接觸到指針時,關(guān)于C++常量指針,指針常量,指向常量的常指針容易混淆,所以整理下,希望能夠幫助自己也幫助到大家
    2021-10-10
  • C/C++指針介紹與使用詳解

    C/C++指針介紹與使用詳解

    不知從何時起對你一眼萬年,從此,每一天被賦予了特別的意義。時隔多年,依然揮之不去是你------指針!??!本篇中幾乎數(shù)據(jù)類型只用了int,但是float、double等也是可以的
    2022-08-08
  • C語言實現(xiàn)簡單的猜數(shù)字游戲

    C語言實現(xiàn)簡單的猜數(shù)字游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)簡單的猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • QT+ffmpeg實現(xiàn)視頻解析的示例詳解

    QT+ffmpeg實現(xiàn)視頻解析的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用QT+ffmpeg實現(xiàn)視頻解析功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Qt有一定幫助,需要的可以參考一下
    2022-09-09
  • C語言詳解分析進(jìn)程控制中進(jìn)程終止的實現(xiàn)

    C語言詳解分析進(jìn)程控制中進(jìn)程終止的實現(xiàn)

    當(dāng)進(jìn)程完成執(zhí)行最后語句并且通過系統(tǒng)調(diào)用 exit() 請求操作系統(tǒng)刪除自身時,進(jìn)程終止。這時,進(jìn)程可以返回狀態(tài)值(通常為整數(shù))到父進(jìn)程(通過系統(tǒng)調(diào)用 wait())。所有進(jìn)程資源,如物理和虛擬內(nèi)存、打開文件和 I/O 緩沖區(qū)等,會由操作系統(tǒng)釋放
    2022-08-08
  • C/C++ 實現(xiàn)簡易HTTP服務(wù)器的示例

    C/C++ 實現(xiàn)簡易HTTP服務(wù)器的示例

    這篇文章主要介紹了C/C++ 實現(xiàn)簡易HTTP服務(wù)器的示例,幫助大家更好的理解和學(xué)習(xí)C/C++編程,感興趣的朋友可以了解下
    2020-10-10
  • 淺談c++構(gòu)造函數(shù)問題,初始化和賦值問題

    淺談c++構(gòu)造函數(shù)問題,初始化和賦值問題

    下面小編就為大家?guī)硪黄獪\談c++構(gòu)造函數(shù)問題,初始化和賦值問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • C語言中關(guān)于scanf函數(shù)的一些問題詳解

    C語言中關(guān)于scanf函數(shù)的一些問題詳解

    這篇文章主要為大家介紹了C語言中關(guān)于scanf函數(shù)的一些問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • C++保存HBITMAP為位圖文件的實現(xiàn)方法

    C++保存HBITMAP為位圖文件的實現(xiàn)方法

    這篇文章主要介紹了C++保存HBITMAP為位圖文件的實現(xiàn)方法,幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
    2021-01-01
  • 樹存儲結(jié)構(gòu)的幾種表示方法

    樹存儲結(jié)構(gòu)的幾種表示方法

    今天小編就為大家分享一篇關(guān)于樹存儲結(jié)構(gòu)的幾種表示方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論

舞阳县| 道真| 昌都县| 西吉县| 霞浦县| 讷河市| 福贡县| 门头沟区| 栾城县| 农安县| 扎囊县| 揭西县| 山东| 河西区| 巴塘县| 称多县| 文水县| 阿拉善左旗| 凌海市| 南部县| 惠州市| 青海省| 铜梁县| 宜良县| 忻城县| 习水县| 通化县| 萨迦县| 丰县| 襄城县| 贡嘎县| 天津市| 汕尾市| 新源县| 惠水县| 大安市| 西吉县| 江西省| 乌拉特前旗| 称多县| 屯门区|