天天看點

《C語言程式設計:問題與求解方法》——2.3節C語言源程式的主要構成成分:函數定義

本節書摘來自華章社群《c語言程式設計:問題與求解方法》一書中的第2章,第2.3節c語言源程式的主要構成成分:函數定義,作者:何 勤,更多章節内容可以通路雲栖社群“華章社群”公衆号檢視

2.3 c語言源程式的主要構成成分:函數定義

我們通過例題2.1來探讨c語言源程式的主要構成成分(該程式的功能在學完本章後,讀者自然應該能夠懂得,現在不必為讀不懂程式感到煩惱)。

【例題2.1】輸入圓球的半徑,求圓球的體積。

c語言源程式如下:

注意:最左邊的行号是為了說明友善而加上的,實際的c語言源程式中是不會有的。

一個c語言源程式的宏觀(即粗粒度)構成成分是函數定義(下面常常簡稱為函數)。例題2.1就是一個函數名為main的函數定義。

一個c語言源程式,是由一個或多個函數定義順序組成的,其中必須有一個函數名為main的函數(本書直到第7章才讨論兩個以上函數組成的c語言程式如何編寫,由多個函數順序構成的c語言源程式的執行個體請參見本書後續章節),main()函數又稱為主函數。

延伸與拓展:c語言函數的本質

主函數被編譯程式翻譯成一個機器語言形式的主程式段,任何其他函數都将被編譯程式翻譯成機器語言形式的子程式段。

換言之,c語言源程式中的函數,并非數學中時常顯得有些高深莫測的函數,它隻是完成特定資料處理任務的、功能上獨立的一個程式段而已。

1.函數定義=函數首部+函數體

任何一個函數定義都是由函數首部(或稱為函數頭部,比如例題2.1中第1行的int main())和函數體(從第2行到第11行)構成。

函數體必須用大括号“{”和“}”括起來,函數體必須緊接在函數首部之後。

2.函數體的主要成分:變量定義序列+語句序列

c語言源程式中,任何函數的函數體的主要(即中粒度)構成成分是:

0或多條變量(或類型)定義組成的定義序列(第3、4行)。

1或多條語句順序組成的語句序列(從第6行到第10行)。

這兩種成分都要以分号結束(複合語句是不以分号結束的一個例外。關于複合語句,請參見第4章)。

c語言程式中的變量定義序列,被編譯程式轉變為機器語言程式中的存放多個資料的記憶體單元的位址;而c語言源程式函數體中的語句序列,則被編譯程式翻譯成對這些記憶體單元中的資料進行運算處理的機器指令序列。

繼續閱讀