函數(shù)定義的一般形式
1.無(wú)參函數(shù)的一般形式
類型說(shuō)明符 函數(shù)名()
{
類型說(shuō)明
語(yǔ)句
}
其中類型說(shuō)明符和函數(shù)名稱為函數(shù)頭。 類型說(shuō)明符指明了本函數(shù)的類型,函數(shù)的類型實(shí)際上是函數(shù)返回值的類型。 該類型說(shuō)明符與第二章介紹的各種說(shuō)明符相同。 函數(shù)名是由用戶定義的標(biāo)識(shí)符,函數(shù)名后有一個(gè)空括號(hào),其中無(wú)參數(shù),但括號(hào)不可少。{} 中的內(nèi)容稱為函數(shù)體。在函數(shù)體中也有類型說(shuō)明, 這是對(duì)函數(shù)體內(nèi)部所用到的變量的類型說(shuō)明。在很多情況下都不要求無(wú)參函數(shù)有返回值, 此時(shí)函數(shù)類型符可以寫(xiě)為void。
我們可以改為一個(gè)函數(shù)定義:
void Hello()
{
printf ("Hello,world \n");
}
這里,只把main改為Hello作為函數(shù)名,其余不變。Hello 函數(shù)是一個(gè)無(wú)參函數(shù),當(dāng)被其它函數(shù)調(diào)用時(shí),輸出Hello world字符串。
2.有參函數(shù)的一般形式
類型說(shuō)明符 函數(shù)名(形式參數(shù)表)
型式參數(shù)類型說(shuō)明
{
類型說(shuō)明
語(yǔ)句
}
有參函數(shù)比無(wú)參函數(shù)多了兩個(gè)內(nèi)容,其一是形式參數(shù)表, 其二是形式參數(shù)類型說(shuō)明。在形參表中給出的參數(shù)稱為形式參數(shù), 它們可以是各種類型的變量, 各參數(shù)之間用逗號(hào)間隔。在進(jìn)行函數(shù)調(diào)用時(shí),主調(diào)函數(shù)將賦予這些形式參數(shù)實(shí)際的值。 形參既然是變量,當(dāng)然必須給以類型說(shuō)明。例如,定義一個(gè)函數(shù), 用于求兩個(gè)數(shù)中的大數(shù),可寫(xiě)為:
int max(a,b)
int a,b;
{
if (a>b) return a;
else return b;
}
第一行說(shuō)明max函數(shù)是一個(gè)整型函數(shù),其返回的函數(shù)值是一個(gè)整數(shù)。形參為a,b。第二行說(shuō)明a,b均為整型量。 a,b 的具體值是由主調(diào)函數(shù)在調(diào)用時(shí)傳送過(guò)來(lái)的。在{}中的函數(shù)體內(nèi), 除形參外沒(méi)有使用其它變量,因此只有語(yǔ)句而沒(méi)有變量類型說(shuō)明。 上邊這種定義方法稱為“傳統(tǒng)格式”。 這種格式不易于編譯系統(tǒng)檢查,從而會(huì)引起一些非常細(xì)微而且難于跟蹤的錯(cuò)誤。ANSI C 的新標(biāo)準(zhǔn)中把對(duì)形參的類型說(shuō)明合并到形參表中,稱為“現(xiàn)代格式”。
例如max函數(shù)用現(xiàn)代格式可定義為:
int max(int a,int b)
{
if(a>b) return a;
else return b;
}
相關(guān)推薦:計(jì)算機(jī)等考二級(jí)C語(yǔ)言備考:C語(yǔ)言/C++編譯過(guò)程北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |