首頁 > 常見問題 > 如何理解c語言函數聲明

如何理解c語言函數聲明

清浅
發布: 2020-09-10 13:16:12
原創
29881 人瀏覽過

C語言函數宣告的格式是由去掉函數定義中的函數體再加上分號組成,目的是為了防止程式在函數未定義之前使用了函數而導致程式報錯。

如何理解c語言函數聲明

C語言程式碼由上到下依序執行,原則上函數定義要出現在函數呼叫之前,否則就會報錯。但在實際開發中,經常在函數定義之前使用它們,這個時候就需要事先聲明。接下來在文章中將為大家具體介紹有關函數宣告的知識,具有一定的參考作用,希望對大家有幫助。

【推薦課程:C語言教學

#函數宣告

所謂聲明(Declaration),就是告訴編譯器我將要使用這個函數,雖然現在沒有找到它的定義不要緊,但是請不要報錯稍後會把定義補上。
函數宣告的格式非常簡單,相當於去掉函數定義中的函數體再加上分號;,如下所示:

返回值类型  函数名( 类型 形参, 类型 形参… );
登入後複製

也可以不寫形參,只寫資料型別:

返回值类型  函数名( 类型, 类型…);
登入後複製

函數宣告給出了函數名稱、傳回值類型、參數列表(參數類型)等與該函數有關的信息,稱為函數原型(Function Prototype)。
函數原型的作用是告訴編譯器與函數有關的信息,讓編譯器知道函數的存在,以及存在的形式,即使函數暫時沒有定義,編譯器也知道如何使用它。
有了函數聲明,函數定義就可以出現在任何地方了,甚至是其他文件、靜態連結庫、動態連結庫等。

範例:

#include <stdio.h>
// 函数声明
long factorial(int n); 
//也可以写作 long factorial(int);
long sum(long n); //也可以写作 long sum(long);
int main(){
printf("1!+2!+...+9!+10! = %ld\n", sum(10));return 0;
}
//求阶乘
long factorial(int n)
{
int i;
long result=1;
for(i=1; i<=n; i++){
result *= i;
}
return result;
}
// 求累加的和
long sum(long n)
{int i;
long result = 0;
for(i=1; i<=n; i++)
{
//嵌套调用
result += factorial(i);
}
return result;
}
登入後複製

運行結果為:1! 2! ... 9! 10! = 4037913

我們知道,使用printf( )、puts()、scanf()、getchar() 等函數要引入stdio.h 這個頭文件,很多初學者認為stdio.h 中包含了函數定義(也就是函數體),只要有了頭檔程式就能運行。其實不然,頭檔包含的都是函數聲明,而不是函數定義,函數定義都在系統函式庫中,只有頭檔沒有系統函式庫在連結時就會報錯,程式根本不能運作。

總結:以上就是這篇文章的全部內容了,希望對大家有幫助。

以上是如何理解c語言函數聲明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板