官术网_书友最值得收藏!

5-7 總結一下:函數幫你編寫更好的代碼

很多《C語言程序設計》書上一般都有這么一個題目:

“編寫一個程序,實現兩個數的四則運算。”

這是考察讀者的多重選擇分支程序的設計能力,熟悉語法的讀者能夠很快寫出來:

其中:while((op=getchar())!= '\n')printf("error!");這句是一個技巧,是為了吸收第二個數字輸入后的回車符。

好了,這個程序運算基本沒有問題,但這不是一個好的代碼,好的代碼必須有一定的抽象性和層次性,一般來說,至少會把核心的運算部分抽象出來。這就是函數和接口存在的意義。

請看修改之后的代碼:

這個新的程序,體現出了用戶界面和核心計算相分離的原則,把計算部分聚合到了一個新的函數int calculator(float numberone,float numbertwo,char op,float *result);中,在任何程序中都可以通過這幾個接口調用它,現在編寫的控制臺程序,當變成Windows圖形界面程序的時候,一樣可以使用這個函數。

當然,這個案例比較小,看不出具體優勢來,我們稍微做一個大一點的程序。現在,題目的要求變了:用戶有很多四則運算要計算,用戶自己想控制程序的開始和結束。這時抽象,接口,代碼重復利用的優勢就會顯現出來。

主站蜘蛛池模板: 子洲县| 庆元县| 宾阳县| 嵩明县| 渭源县| 承德县| 正定县| 怀仁县| 伊通| 汉中市| 攀枝花市| 隆德县| 博白县| 洛川县| 洛宁县| 双鸭山市| 泰兴市| 南开区| 昌邑市| 兰溪市| 荔波县| 中卫市| 富阳市| 南召县| 巴马| 桑日县| 泰顺县| 沈丘县| 古浪县| 乌兰浩特市| 隆德县| 冀州市| 襄樊市| 郓城县| 宁南县| 贵定县| 太仆寺旗| 花垣县| 城固县| 平罗县| 朝阳区|