1、函數的本質:
- 函數由能完成特定功能的獨立程序代碼塊組成,如有必要,也可調用其他函數(函數的嵌套)
- 函數內部工作對程序的其它部分是不可見的
2、 實現一個函數要經過3個步驟:定義、聲明、調用
函數聲明(又稱函數原型)的原因:用來通知編譯器函數的存在,以獲得函數的使用許可,只有這樣,才能在程序中對函數進行調用。
具體來說,函數聲明的作用如下:
- 使編譯器正確處理返回值
- 使編譯器可以檢查輸入參數的數目
- 使編譯器檢查輸入參數的類型,如果類型不正確,則對類型進行隱式轉換
函數調用的作用如下:
- 用實參向形參傳遞數據
- 為獲得數據的參數和函數中為聲明的變量分配臨時存儲空間
- 中斷當前正在運行的上級調用函數,將程序流程轉到被調用函數的入口處
3、分割程序文件
一些程序常由許多文件組成,為了方便管理,經常將函數定義在cpp文件中,而將函數聲明語句放在與cpp文件同名的頭文件中(.h文件),這樣就可以通過編譯器預處理
#include "xxx.h"來實現函數的聲明,這種方法在大型程序文件的組織中非常常見。
如:
主程序:example.cpp
#include<iostream> #include<stdlib.h> #include "func.h" //通過編譯預處理,實現函數的聲明 using namespace std; int main() { int num1,num2; int z; cout<<"請輸入兩個整數:"; cin>>num1>>num2; cout<<"輸入的兩個數的和為:"; z=add(num1,num2); print(z); cout<<"輸入的兩個數的較大值為:"; z=max(num1,num2); print(z); cout<<"輸入的兩個數的較小值為:"; z=min(num1,num2); print(z); system("pause"); return 0; }
函數功能:func.cpp
#include<iostream> using namespace std; int add(int x,int y) { int z; z=x+y; return z; } int max(int x,int y) { int z; if(x>y) z=x; else z=y; return z; } int min(int x,int y) { int z; if(x>y) z=y; else z=x; return z; } void print(int x) { cout<<x<<endl; }
函數聲明:func.h
int add(int x,int y); int max(int x,int y); int min(int x,int y); void print(int x);