-
函數聲明
鎖定
- 中文名
- 函數聲明
- 所屬學科
- 軟件工程
- 定 義
- 對函數功能的確立
- 分 類
- 指定函數名,函數值類型、形參類型、函數體等
函數聲明定義
【返回類型】 函數名(參數1類型 參數1,參數2類型 參數2,……);
例子:
#include<stdio.h> int add(int x,int y); //函數聲明語句 main(){ int a,b,c; c=add(a,b); printf("%d",c); } int add(int x,int y)//函數定義 { int z; z=x+y; return z; }
函數聲明文件中聲明函數
把函數聲明直接放在每個使用該函數的源文件中是大多數新手習慣並喜愛的方式,這是合法的。但是這種方式古板且易出錯。解決方法就是把函數的聲明放在頭文件中,這樣可以確保對於指定函數其所有聲明保持一致。如果函數接口發生變化,則只需修改其唯一聲明即可。
函數聲明特點
函數的聲明與函數的定義形式上十分相似,但是二者有着本質上的不同。聲明是不開闢內存的,僅僅告訴編譯器,要聲明的部分存在,要預留一點空間。定義則需要開闢內存。
函數聲明函數的定義
函數的定義是一個完整的函數單元:
- 包含函數類型、函數名、形參及形參類型、函數體等
- 在程序中,函數的定義只能有一次
- 函數首部與花括號間不加分號
函數聲明函數的聲明
函數聲明只是對編譯系統的一個説明:
- 函數聲明是對定義的函數的返回值的類型説明,以通知系統在本函數中所調用的函數是什麼類型。
- 不包含函數體(或形參)
- 調用幾次該函數就應在各個主調函數中做相應聲明
函數聲明注意事項
- 函數聲明可以省略形參名,但是函數定義的首部必須寫出所有形參名並給出其對應的數據類型。
- 函數原型的主要目的為聲明函數返回值類型以及函數的期望接受的參數的個數、參數類型和參數順序
- 如果程序中沒有某個函數的函數原型(沒有説明),編譯系統就會用第一次出現的這個函數(函數定義或函數調用)構造函數原型
- 在缺省下編譯系統默認函數返回值為int
- 而對函數參數類型不做任何假設
- 常見錯誤
- 和函數原型不匹配的函數調用會導致語法錯誤
- 函數原型和函數定義不一致,也會產生錯誤
- C語言環境下,如果函數不進行聲明就使用,可能會發生錯誤,因為默認將返回值做為int類型來處理,所以,最好是在使用之前對函數進行聲明。
- 參考資料
-
- 1. C語言中函數的聲明、定義及使用 .腳本之家[引用日期2017-08-14]