C語言主函數(shù)通過函數(shù)調(diào)用的方式調(diào)用子函數(shù)。主函數(shù)可以直接調(diào)用子函數(shù),也可以通過函數(shù)指針間接調(diào)用子函數(shù)。
直接調(diào)用子函數(shù)的語法如下:
// 子函數(shù)的聲明
返回值類型 子函數(shù)名(參數(shù)列表);
int main() {
// 調(diào)用子函數(shù)
子函數(shù)名(參數(shù)列表);
return 0;
}
// 子函數(shù)的定義
返回值類型 子函數(shù)名(參數(shù)列表) {
// 子函數(shù)的代碼邏輯
return 返回值;
}
間接調(diào)用子函數(shù)則需要使用函數(shù)指針,具體的語法如下:
// 子函數(shù)的聲明
返回值類型 子函數(shù)名(參數(shù)列表);
int main() {
// 定義函數(shù)指針
返回值類型 (*函數(shù)指針名)(參數(shù)列表);
// 將子函數(shù)的地址賦給函數(shù)指針
函數(shù)指針名 = &子函數(shù)名;
// 通過函數(shù)指針調(diào)用子函數(shù)
函數(shù)指針名(參數(shù)列表);
return 0;
}
// 子函數(shù)的定義
返回值類型 子函數(shù)名(參數(shù)列表) {
// 子函數(shù)的代碼邏輯
return 返回值;
}
需要注意的是,子函數(shù)的聲明和定義應(yīng)當(dāng)在主函數(shù)之前,或者使用函數(shù)原型的方式提前聲明子函數(shù)。另外,子函數(shù)的返回值類型、參數(shù)列表和主函數(shù)中調(diào)用子函數(shù)的參數(shù)列表應(yīng)當(dāng)一致。