C++中的函數是一起一組執行一個任務語句,在c++中不管何種程式都必須有一個函數,即主函數,程式也可以定義其他任意功能的函數,一般情況下你可以把程式碼劃分到不同的函數之中。這取決於你的邏輯,編譯器需要函數的名稱和返回型別以及函數參數而函數宣告正好滿足了這一點。函數的定義則提供了函數實際主體,
那函數只能自己定義嗎 ?
我在第一次學習C++時同樣會有顧慮,不過好在c++標準庫中提供了不少的可供呼叫的內建函數,比如strcat()來連線兩個字串以及memcpy()來複制記憶體到另一個位置以及windowsAPI中的messageBox()(用來發送資訊視窗)不過都是後話了
return_type function_name( parameter list )
{
body of the function
}
在 C++ 中,函數由一個函數頭和一個函數主體組成
return_type 一個函數可以返回一個值
return_type爲函數返回的數據型別,而有些函數爲執行所需操作則不返回值,一般這種情況
return_type關鍵字爲void
function_name這是函數名稱可以自己來命名,函數名稱和參數一起構成了函數簽名
如程式碼所示
void myfirstfunction()
{
cout<<"this is my first function."<<endl;
}
函數參數當函數被呼叫時,可以向參數傳遞一個值,這個值一般會被稱爲函數的實際參數,參數列表包括函數參數的型別、順序、數量。參數是可選的,也就是說,函數可能不包含參數。
我們將拿一個windows函數中的bind函數來進行展示。
int bind(SOCKET sock, const struct sockaddr *addr, int addrlen); //Windowsbind函數
不要問我問什麼要用windowsSocket函數(汗,汗)
不管怎樣bind函數有socket檔案表示符,addr 爲 sockaddr 結構體變數的指針,addrlen 爲 addr 變數的大小,可由 sizeof() 計算得出。。。。。扯遠了。這些參數有不同的意義,c++標準庫也是如此
函數宣告
函數宣告會告訴編譯器函數名稱及如何呼叫函數。函數的實際主體可以單獨進行定義。
函數宣告一般包括以下幾個部分,
return_type function_name( parameter list )
如
int max(int sum1, int sum2);
在函數宣告中,參數的名稱並不重要,只有參數的型別是必需的,因此下面 下麪也是有效的宣告:
int max(int, int);
一般在函數宣告之中,參數名稱基本可以無視,因爲並不重要,但參數的型別是必須的,這時,你因該呼叫函數的檔案頂部宣告函數。
關於呼叫函數下次會詳講。
本人第一次發文章,如有不詳或錯誤請大佬來指正,謝謝大家。