C 入門(5) 定義個人函式

2021-07-09 05:03:31 字數 1143 閱讀 5751

函式定義

函式原型通常安排在main()函式的定義之前;

定義函式時,可以給輸入引數設定預設值,讓這個引數成為可選的,但有一點必須注意:必須把所有的必選引數放在可選引數之前!!

內聯函式

建立內聯函式最直接的辦法是使用 inline 關鍵字並在 main() 函式的前面定義它,所以內聯函式不需要先為它定義原型;

某個函式被編譯器當做內聯函式來處理最直接的效果是:這個函式的呼叫將被替換為實際的函式**,就像那些**是寫在main()函式裡一樣;

但是,即使使用了inline關鍵字,函式也並非肯定會被當做乙個內聯函式來對待。

函式的過載

一般來說,過載的函式最適用於需要對不同的資料型別進行相同處理的場合;我們無法通過只改變函式返回值的型別而過載乙個函式。

如果只是想讓乙個引數能夠接受(比如)兩個或三個輸入引數,把第三個輸入引數定義為可選引數(讓它有乙個預設值)即可。

變數作用域

繞開變數作用域的辦法之一是在發出函式呼叫時按引用傳遞;

函式內部的變數可以被宣告為 static(靜態) 的,函式內部的靜態變數的值在程式的生命週期內即使經歷多次函式呼叫也不會被自動重置,但它仍然是區域性的。

#include 

void teststatic()

int testmax(int a, int b, int c = 10)

else

else

if(b > a && b > c)

else

}}int main(int argc, char** argv)

執行結果為

max = 7

count = 1

count = 2

count = 3 //每次呼叫teststatic(),count值加1

如果在main()函式中加入std::cout << count;則會出錯,因為雖然多次呼叫函式時,函式內部的靜態變數不會被重置,但它仍然是區域性的,主程式不能識別。

c++入門(4):檔案讀寫

個人部落格入門5

歸類說明 文章歸類是為了更加條理化的組織知識,所以每乙個類都應該可以看做是乙個系列文章。標籤具有更明確的標識意義,標籤預設與類名稱相同。文章暫時不能在當前類中被進一步分類的時候,就放在父類中。乙個標籤與父類名稱相同,乙個標籤來描述自身名稱。文章如果已經細分到子類,則標籤預設與子類名稱相同,根據情況決...

C 入門教程(十二) 定義函式

小古銀的官方 完整教程 補充知識 既然用過std abs 函式,那麼,現在就以它為例,實現乙個myabs 函式來實現求絕對值。返回值型別 函式名稱 引數型別 引數名稱,引數型別 引數名稱 根據這個格式實現myabs 函式 include int myabs int num else return v...

C 入門教程(12) 定義函式

小古銀的官方 完整教程 既然用過std abs 函式,那麼,現在就以它為例,實現乙個myabs 函式來實現求絕對值。返回值型別 函式名稱 引數型別 引數名稱,引數型別 引數名稱 根據這個格式實現myabs 函式 include int myabs int num else return value ...