函式相關,比如編譯之後是什麼,函式名的表,定義函式,涉及到return、形參、實參等等,什麼是引數
一、函式使用方法
比如y = x + 4; x和y的關係式不變,給乙個x就能得到乙個y。
先來看下程式設計中的函式是怎樣的。
int function(int x)
這是乙個簡單的函式定義,就好比我們給了你乙個式子,或者一串**,你只要根據傳入的x,就能得到乙個y;定義了怎麼使用呢?
下面是一段**:
//example 1
#include
int function(int x)
int main(int argc, char *argv)
通過這段**,在linux終端下,執行gcc main.c即可生成在該平台下可用的可執行程式a.out。
數學中,我們需要乙個固定的式子,用人腦計算結果,但是在計算機的世界裡,cpu幫我們把事情給做了,你只需要找到方法怎麼去做這件事就好。
main本身也是乙個函式,只不過它是程式的入口,所以沒提到多少,其實它也會被呼叫,而且要有返回值。
1、函式定義的各個方面
在function為名字的函式定義中,前面的int表示返回值型別,括號中的int x表示形參,return關鍵字就是表示把這個值返回。
2、函式呼叫
這裡帶有返回值,所以我們需要用乙個變數將返回值儲存以備呼叫;還要給函式名後面括號中放乙個實際的值,可以是變數也可以是常量,這裡直接放的是a, a就是實參(具體的,實際上的引數),相當於代入a,通過算式function算出b的值;
3、函式的宣告
一般情況下,如果在乙個**檔案中,函式的定義寫在呼叫函式之前,則可以省去宣告;而如果寫在呼叫後面,則需要先宣告再呼叫。比如下**:
//example 2
#include
int function(int x);
int main(int argc, char *argv)
int function(int x)
前面寫的function只是宣告下,告訴下面要用的**,我這有定義呢,別亂用。
二、深入理解函式
程式中的變數,函式都是有相應的記憶體位址的,在編譯鏈結完成之後就會給其分配記憶體位址,生成的二進位制檔案都是用位址和指令表示的。
所以,上述例子中,a,b,x,y,function,main等都是有其記憶體位址的,只不過通常情況下,我們並不關心具體位址是多少。
在乙個函式中,形參是在定義函式的時候括號中的變數,可以有多個,用逗號分開。在程式執行的時候,這些變數是存放在棧中的,也就是臨時變數區,每個函式都有自己的棧區,用來存放區域性變數(包括形參和該函式用大括號括起來的**中的變數),存放順序是最右邊的存放在高位址部分,最左邊的存放在低位址,所以入棧順序為從右到左。我們可以用一段測試**列印出位址即可知道:
void function(int x, int y, int z)
通過呼叫該函式,執行後可在螢幕列印顯示x,y,z的位址即可驗證。
對於return,一般說,return在函式中不可返回區域性變數,因為區域性變數存放在棧中,函式返回該記憶體空間就會被銷毀,通常是這樣,不過現在的編譯器好像做了優化還是怎麼地,區域性變數也是可以返回的。
相關函式部分先說這麼多,有問題再補充。
碎覺。
Oracle round函式是什麼意思 怎麼運用
分享 2006 11 03 09 32 tidecc 瀏覽 211958 次 2016 04 15 16 17 提問者採納 如何使用 oracle round 函式 四捨五入 描述 傳回乙個數值,該數值是按照指定的小數字元數進行四捨五入運算的結果。select round number,decima...
Oracle round函式是什麼意思 怎麼運用
如何使用 oracle round 函式 四捨五入 描述 傳回乙個數值,該數值是按照指定的小數字元數進行四捨五入運算的結果。select round number,decimal places from dual 引數 number 欲處理之數值 decimal places 四捨五入 小數取幾位 ...
Oracle round函式是什麼意思 怎麼運用
如何使用 oracle round 函式 四捨五入 描述 傳回乙個數值,該數值是按照指定的小數字元數進行四捨五入運算的結果。select round number,decimal places from dual 引數 number 欲處理之數值 decimal places 四捨五入 小數取幾位 ...