日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!

您現(xiàn)在的位置:首頁(yè) 新聞資訊 >> 新聞?lì)^條 >> 函數(shù)的聲明
新聞資訊
NEWS INFORMATION

函數(shù)的聲明

發(fā)布時(shí)間:2019-05-22

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

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

函數(shù)聲明的格式非常簡(jiǎn)單,相當(dāng)于去掉函數(shù)定義中的函數(shù)體再加上分號(hào);,如下所示:

返回值類型  函數(shù)名( 類型 形參, 類型 形參… );

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

返回值類型  函數(shù)名( 類型, 類型…);

函數(shù)聲明給出了函數(shù)名、返回值類型、參數(shù)列表(參數(shù)類型)等與該函數(shù)有關(guān)的信息,稱為函數(shù)原型(Function Prototype)。

函數(shù)原型的作用是告訴編譯器與該函數(shù)有關(guān)的信息,讓編譯器知道函數(shù)的存在,以及存在的形式,即使函數(shù)暫時(shí)沒有定義,編譯器也知道如何使用它。

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

上節(jié)給出了計(jì)算sum = 1! + 2! + 3! + ... + (n-1)! + n!的代碼,這節(jié)我們稍作修改,將 factorial() 和 sum() 函數(shù)的定義放到 main() 函數(shù)后面,請(qǐng)看下面的代碼:

  1. #include <stdio.h>
  2. // 函數(shù)聲明
  3. long factorial(int n); //也可以寫作 long factorial(int);
  4. long sum(long n); //也可以寫作 long sum(long);
  5. int main(){
  6. printf("1!+2!+...+9!+10! = %ld\n", sum(10));
  7. return 0;
  8. }
  9. //求階乘
  10. long factorial(int n){
  11. int i;
  12. long result=1;
  13. for(i=1; i<=n; i++){
  14. result *= i;
  15. }
  16. return result;
  17. }
  18. // 求累加的和
  19. long sum(long n){
  20. int i;
  21. long result = 0;
  22. for(i=1; i<=n; i++){
  23. //嵌套調(diào)用
  24. result += factorial(i);
  25. }
  26. return result;
  27. }

運(yùn)行結(jié)果:
1!+2!+...+9!+10! = 4037913

我們知道,使用 printf()、puts()、scanf()、getchar() 等函數(shù)要引入 stdio.h 這個(gè)頭文件,很多初學(xué)者認(rèn)為 stdio.h 中包含了函數(shù)定義(也就是函數(shù)體),只要有了頭文件程序就能運(yùn)行。其實(shí)不然,頭文件中包含的都是函數(shù)聲明,而不是函數(shù)定義,函數(shù)定義都在系統(tǒng)庫(kù)中,只有頭文件沒有系統(tǒng)庫(kù)在鏈接時(shí)就會(huì)報(bào)錯(cuò),程序根本不能運(yùn)行。

最后再補(bǔ)充一點(diǎn),函數(shù)原型給出了使用該函數(shù)的所有細(xì)節(jié),當(dāng)我們不知道如何使用某個(gè)函數(shù)時(shí),需要查找的是它的原型,而不是它的定義,我們往往不關(guān)心它的實(shí)現(xiàn)。

聯(lián)系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

湖南省| 山阴县| 南开区| 泰来县| 和静县| 静乐县| 和顺县| 镇沅| 通榆县| 安庆市| 安陆市| 衡南县| 金阳县| 桂阳县| 信丰县| 宁波市| 庆元县| 理塘县| 来凤县| 南京市| 绍兴县| 濮阳市| 洛浦县| 桑植县| 金塔县| 荆门市| 银川市| 临高县| 托克逊县| 九龙城区| 望城县| 谢通门县| 海门市| 志丹县| 塔城市| 东乡县| 临潭县| 朝阳区| 乌拉特后旗| 库车县| 疏勒县|