7.4.3 被調(diào)用函數(shù)的聲明和函數(shù)原型
在主調(diào)函數(shù)中調(diào)用某函數(shù)之前應對該被調(diào)函數(shù)進行說明(聲明),這與使用變量之前要先進行變量說明是一樣的。在主調(diào)函數(shù)中對被調(diào)函數(shù)作說明的目的是使編譯系統(tǒng)知道被調(diào)函數(shù)返回值的類型,以便在主調(diào)函數(shù)中按此種類型對返回值作相應的處理。
其一般形式為:
類型說明符 被調(diào)函數(shù)名(類型 形參,類型 形參…);
或為:
類型說明符 被調(diào)函數(shù)名(類型,類型…);
括號內(nèi)給出了形參的類型和形參名,或只給出形參類型。這便于編譯系統(tǒng)進行檢錯,以防止可能出現(xiàn)的錯誤。
main函數(shù)中對max函數(shù)的說明為:
int max(int a,int b);
或?qū)憺椋?/p>
int max(int,int);
C語言中又規(guī)定在以下幾種情況時可以省去主調(diào)函數(shù)中對被調(diào)函數(shù)的函數(shù)說明。
1.如果被調(diào)函數(shù)的返回值是整型或字符型時,可以不對被調(diào)函數(shù)作說明,而直接調(diào)用。這時系統(tǒng)將自動對被調(diào)函數(shù)返回值按整型處理。例7-4的主函數(shù)中未對函數(shù)s作說明而直接調(diào)用即屬此種情形。
2.當被調(diào)函數(shù)的函數(shù)定義出現(xiàn)在主調(diào)函數(shù)之前時,在主調(diào)函數(shù)中也可以不對被調(diào)函數(shù)再作說明而直接調(diào)用。
3.如在所有函數(shù)定義之前,在函數(shù)外預先說明了各個函數(shù)的類型,則在以后的各主調(diào)函數(shù)中,可不再對被調(diào)函數(shù)作說明。例如:
其中第一、第二行對str函數(shù)和f函數(shù)預先作了說明。因此在以后各函數(shù)中無須對str和f函數(shù)再作說明就可直接調(diào)用。
4.對庫函數(shù)的調(diào)用不需要再作說明,但必須把該函數(shù)的頭文件用include命令包含在源文件前部。
免責聲明:以上內(nèi)容源自網(wǎng)絡,版權歸原作者所有,如有侵犯您的原創(chuàng)版權請告知,我們將盡快刪除相關內(nèi)容。