C語言 函數(shù)的定義 說明
從上面兩個例題可看出,一個函數(shù)是由函數(shù)說明部分和函數(shù)體構(gòu)成的。
(1)函數(shù)說明部分
函數(shù)說明部分包括類型標(biāo)識符、函數(shù)名、參數(shù)表及參數(shù)類型等。
①類型標(biāo)識符:類型標(biāo)識符用來定義函數(shù)的類型。函數(shù)的類型即是函數(shù)返回值的類型,希望函數(shù)返回什么類型的值就用該類型來說明函數(shù)。例如上例求最大值函數(shù)max()中,返回值是a和b兩個數(shù)中的最大值,a和b都是整型,所以返回值也應(yīng)是整型,因而用int來定義函數(shù)。
函數(shù)可以沒有返回值,如果函數(shù)不需要返回值,可將函數(shù)定義為空類型void。需要注意的是,如果不需要函數(shù)返回值,而且也未將函數(shù)定義為空類型,有些編譯系統(tǒng)在編譯時會報蝥告錯誤。
②函數(shù)名:即函數(shù)定義時為函數(shù)所起的名字。當(dāng)該函數(shù)被調(diào)用時,需要引用函數(shù)名。函數(shù)名的命名規(guī)則遵循C語言標(biāo)識符的命名規(guī)則,同一個程序中函數(shù)名不能重名。
③參數(shù)表:參數(shù)表是寫在函數(shù)名后面的括號“()”中的變量列表。參數(shù)表中包含一個或多個變量,每個變量前有聲明其類型的類型標(biāo)識符,每一個參數(shù)之間以逗號分隔。例如上例求最大值中:
int max (int a, int b)
參數(shù)表中有兩個參數(shù)a和b,且都是整型。
對于無參函數(shù),參數(shù)表是空的,但是函數(shù)名后面的“()”不可省略
(2)函數(shù)體
花括號“{}”括起的部分稱為函數(shù)體。函數(shù)體是函數(shù)的語句執(zhí)行部分,也由兩部分組成:說明語句部分和可執(zhí)行語句部分。
①說明語句:主要包括聲明語句,聲明變量、數(shù)組、指針、函數(shù)等。
②可執(zhí)行語句部分:是完成函數(shù)功能的執(zhí)行語句系列。注意如果函數(shù)有返回值,在執(zhí)行語句部分需要出現(xiàn)return語句。return語句用來將函數(shù)的返回值帶回給主調(diào)函數(shù)。
(3)函數(shù)定義不允許嵌套
在C語言中,所有函數(shù)包括主函數(shù)main()都是平行的。一個函數(shù)的定義,可以放在程序中的任意位置,主函數(shù)main()之前或之后。但在一個函數(shù)的函數(shù)體內(nèi),不能再定義另一個函數(shù),即不能嵌套定義。如以下定義是錯誤的:
int oprdata(int a,int b)
{
int max(int x,int y) /* 試圖在 optdata 中嵌入一個max.函數(shù) */
{
return(x>y?x:y);
}
int min(int x.int y) /* 試圖在 optdata 中嵌入一個min.函數(shù) */
{
return (x<y?x:y);
}
}
(4)C語言允許定義空函數(shù)
空函數(shù)就是既無參數(shù)、函數(shù)體又為空的函數(shù)。其一般形式為:
[函數(shù)類型] 函數(shù)名(void)
{
}
例如:
void nothing()
{
}
nothing()函數(shù)就是一個空函數(shù),當(dāng)調(diào)用該函數(shù)時,什么也不做??蘸瘮?shù)的意義可以是先占位,等程序功能擴(kuò)展時加入具體有意義的內(nèi)容。
點(diǎn)擊加載更多評論>>