1.9 函数-C++编程模块
1. 要使用C++函數, 必須完成如下工作:
??? (1) 提供函數原型; 即聲明函數 void simple();
??? (2) 提供函數定義; 即定義函數simple()的內容;
??? (3) 調用函數;
2. C++對于返回值的類型有一定的限制: 不能是數組, 但可以是其他任何類型(整數,浮點數,指針,結構體和對象). 注意: 雖然C++函數不能直接返回數組, 但可以將數組作為結構體對象組成部分來返回. 例如, 結構體point, 含有一個數組a[3], 函數可以返回結構體point.
3. 函數返回值過程. 例如下面過程:
?? double cube(double a);//函數原型
?? int main()
?? {
?????? ... double q=cube(1.2);...
??? }
???double cube(double)
?? {
?????? return a*a*a;
??? }
??? (1) cube()計算返回值, 并將返回值復制到指定的CPU寄存器或內存單元中, 返回值地址為p; 函數頭告訴cube()返回值類型為double;
??? (2) main()在p處找到返回值并賦值給q, cube()原型告訴main()它可以獲得的數據類型.
??? (1)和(2)中必須救返回值類型達成一致,否則會被強制轉換.
4. 為什么需要函數原型?
??? 函數原型描述了函數到編譯器的接口, 它將函數返回值的類型(如果有的話)以及參數的類型和數量告訴編譯器. 例如
??????? double q=cube(side)
??? 原型告訴編譯器, cube()有一個double參數. 如果程序沒有提供這樣的參數, 原型將讓編譯器能夠捕獲這種錯誤. cube()函數完成計算后, 將把返回值放置在指定的位置-可能是CPU寄存器, 也可能是內存中, 然后調用函數(這里是main())將從這個位置取得返回值. 由于原型指出了cube()的類型為double, 因此編譯器知道應檢索多少個自己以及如何解釋它們, 如果沒有這些信息, 編譯器將只能進行猜測, 而編譯器是不會這樣做的.
5. 函數的原型是一條語句,以分號結束,函數原型不需要提供變量名,有類型列表就可以了。當然也可以包含變量名,但是在函數原型中的變量名只相當于占位符,不必與函數定義中的變量名相同。一個典型的函數原型為
?? ? double cube(int x);或者double cube(int);
6. 原型的功能
?? (1)編譯器正確處理函數返回值;
?? (2)編譯器檢查使用的參數數目是否正確;
?? (3)編譯器檢查使用的參數類型是否正確,如果不正確,則轉換成正確的類型。
總結
以上是生活随笔為你收集整理的1.9 函数-C++编程模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.8 简单的文件输入输出
- 下一篇: C++教材