程序設計中的函數(方法)的生命週期
在筆者看來,函數是人類學術史上最重要的發明之一。回想一下,從小學到大學,所學過的數學是不是就是各種函數及各種函數的變化和各種變化的函數?其實,在很多領域中,函數都是研究“變化”的最有力工具。在程序設計當中,函數(有的程序設計語言也叫方法)也佔有相當重要的地位。當初筆者在學習c語言的時候就對函數(方法)不理解,更不明白其重要性,相信有部分初學者感同身受。今天筆者就自己的理解講講函數(方法)的“生命週期”,以期對讀者的學習有所幫助!
在軟件設計當中,一個很重要的思想就是模塊化,將功能相對獨立、互相關聯小的功能單元化,從而實現“高內聚,低耦合”,其方法就是構造功能函數(方法)。函數(方法)由函數名、參數列表、返回值和函數體組成,下面就以一個c函數來加以說明:
int funname(int variablea,int variableb) //求參數variablea、variableb的和variablec
{
intvariablec;
variablec = variablea + variableb;
return variablec;
}
在上述函數中,int是返回值類型,funname是函數名,variablea、variableb是函數參數,variablec是臨時變量,兩個花括號之間的就是函數體。函數體中的第一個語句就是函數“生命開始的地方”,那麼函數從何時結束呢?不對,是從何時去世?
在分析函數如何“去世”之前,首先說明一下什麼是返回值,就像數學中函數有函數值一樣,程序設計中的函數(方法)也有與之相對應的返回值,用於返回一個函數執行完後你期望得到的值。簡言之,就是函數在給定參數下的結果(並不是函數的所有結果)。
函數“生命”的結束通常有三種方式:
@對於無返回值的函數(方法):從函數體中第一條語句開始,順序執行到函數體最後一條語句,函數自動結束;
@對於有返回值的函數(方法):函數執行到返回值語句即return語句時(無論return在哪兒,只要執行了),本例中對應return variablec;語句,函數就結束了;
其實對於無返回值的函數,也可以用return;語句結束,同其他有返回值函數return語句一樣!這個return;語句對於無返回值函數可有可無。
@使用exit(0)語句強制結束:exit(0)是一個系統函數,用於結束當前的進程(可以簡單理解爲當前整個程序),而且是強制性的。當執行到exit(0)語句時,不僅僅所在函數會結束,整個程序也會結束,讀者要謹慎使用。
一般類c\c++語言中的函數(方法)都如此,其他語言也只是略有不同,讀者要學會變通。
以上是筆者個人見解,有疑問歡迎討論。