被調用函數的聲明和函數原型

  • 2017-08-21
  • 64

西安做網站 被調用函數的聲明和函數原型

在主調函數中調用某函數之前應對該被調函數進行說明(聲明),這與使用變量之前要先進行變量說明是一樣的。在主調函數中對被調函數作說明的目的是使編譯係統知道被調函數返回值的類型,以便在主調函數中按此種類型對返回值作相應的處理。

其一般形式為:

        類型說明符 被調函數名(類型 形參,類型 形參);  

或為:

        類型說明符 被調函數名(類型,類型);  

括號內給出了形參的類型和形參名,或隻給出形參類型。這便於編譯係統進行檢錯,以防止可能出現的錯誤。

8.1 main函數中對max函數的說明為:

int max(int a,int b);

或寫為:

        int max(int,int);

C語言中又規定在以下幾種情況時可以省去主調函數中對被調函數的函數說明。

如果被調函數的返回值是整型或字符型時,可以不對被調函數作說明,而直接調用。這時係統將自動對被調函數返回值按整型處理。例8.2的主函數中未對函數s作說明而直接調用即屬此種情形。

當被調函數的函數定義出現在主調函數之前時,在主調函數中也可以不對被調函數再作說明而直接調用。例如例8.1中,函數max的定義放在main 函數之前,因此可在main函數中省去對max函數的函數說明int max(int a,int b)。

如在所有函數定義之前,在函數外預先說明了各個函數的類型,則在以後的各主調函數中,可不再對被調函數作說明。例如:

    char str(int a);

    float f(float b);

    main()

    {

     ……

    }

    char str(int a)

    {

     ……

    }

    float f(float b)

    {

     ……

    }

其中第一,二行對str函數和f函數預先作了說明。因此在以後各函數中無須對str和f函數再作說明就可直接調用。

對庫函數的調用不需要再作說明,但必須把該函數的頭文件用include命令包含在源文件前部。西安做網站