位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 函數(shù)的定義 說明

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-30

從上面兩個(gè)例題可看出,一個(gè)函數(shù)是由函數(shù)說明部分和函數(shù)體構(gòu)成的。

(1)函數(shù)說明部分

    函數(shù)說明部分包括類型標(biāo)識(shí)符、函數(shù)名、參數(shù)表及參數(shù)類型等。

    ①類型標(biāo)識(shí)符:類型標(biāo)識(shí)符用來定義函數(shù)的類型。函數(shù)的類型即是函數(shù)返回值的類型,希望函數(shù)返回什么類型的值就用該類型來說明函數(shù)。例如上例求最大值函數(shù)max()中,返回值是a和b兩個(gè)數(shù)中的最大值,a和b都是整型,所以返回值也應(yīng)是整型,因而用int來定義函數(shù)。

    函數(shù)可以沒有返回值,如果函數(shù)不需要返回值,可將函數(shù)定義為空類型void。需要注意的是,如果不需要函數(shù)返回值,而且也未將函數(shù)定義為空類型,有些編譯系統(tǒng)在編譯時(shí)會(huì)報(bào)蝥告錯(cuò)誤。

    ②函數(shù)名:即函數(shù)定義時(shí)為函數(shù)所起的名字。當(dāng)該函數(shù)被調(diào)用時(shí),需要引用函數(shù)名。函數(shù)名的命名規(guī)則遵循C語言標(biāo)識(shí)符的命名規(guī)則,同一個(gè)程序中函數(shù)名不能重名。

    ③參數(shù)表:參數(shù)表是寫在函數(shù)名后面的括號(hào)“()”中的變量列表。參數(shù)表中包含一個(gè)或多個(gè)變量,每個(gè)變量前有聲明其類型的類型標(biāo)識(shí)符,每一個(gè)參數(shù)之間以逗號(hào)分隔。例如上例求最大值中:

    int max (int a, int b)

    參數(shù)表中有兩個(gè)參數(shù)a和b,且都是整型。

    對(duì)于無參函數(shù),參數(shù)表是空的,但是函數(shù)名后面的“()”不可省略

(2)函數(shù)體

    花括號(hào)“{}”括起的部分稱為函數(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()都是平行的。一個(gè)函數(shù)的定義,可以放在程序中的任意位置,主函數(shù)main()之前或之后。但在一個(gè)函數(shù)的函數(shù)體內(nèi),不能再定義另一個(gè)函數(shù),即不能嵌套定義。如以下定義是錯(cuò)誤的:

int oprdata(int a,int b)

{

    int max(int x,int y)    /* 試圖在 optdata 中嵌入一個(gè)max.函數(shù) */

    {

      return(x>y?x:y);

    }

    int min(int x.int y)    /* 試圖在 optdata 中嵌入一個(gè)min.函數(shù) */

    {

    return (x<y?x:y);

    }

}

(4)C語言允許定義空函數(shù)

空函數(shù)就是既無參數(shù)、函數(shù)體又為空的函數(shù)。其一般形式為:

[函數(shù)類型]    函數(shù)名(void)

{

}

例如:

void nothing()

{

}

    nothing()函數(shù)就是一個(gè)空函數(shù),當(dāng)調(diào)用該函數(shù)時(shí),什么也不做??蘸瘮?shù)的意義可以是先占位,等程序功能擴(kuò)展時(shí)加入具體有意義的內(nèi)容。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部