在c程式中增加乙個新的函式由兩個步驟組成:
(1) 需要指定這個函式原型,它通常位於整個程式的頭部,在#include行之後。
(2) 在程式的稍後部分,需要提供該函式的實現,即指定一些實際的程式步驟。
例如,要寫乙個將攝氏溫度轉為華氏溫度的函式。
其原型為:
double
celsiustofahrenheit
(double c)
;
函式的實現是由它的原型開始,去掉結尾的分號,然後加入函式體。
程式塊中的語句前面可以有變數宣告,就如前面所見的main函式中一樣。
如果函式返回乙個結果,則函式體中至少包含乙個return語句,它指出了要返回的值。
如上所述, return語句包含兩個概念:「我已經完成了」和「這就是答案」。
return語句完成了寫乙個celsiustofahrenheit
函式的實現所需的所有手段:
double
celsiustofahrenheit
(double c)
該函式計算相應表示式的值,並將該值作為函式的結果值返回。
函式celsiustofahrenheit
本身不能組成乙個完整的程式。
每個完整的程式都有乙個名字為main
的函式,當程式開始執行的時候就呼叫該函式。
生成溫度轉換表的完整程式如下:
/* file: c2ftable.c
* ----------------
* this program illustrates the use of functions by generating
* a table of celsius to fahrenheit conversions.
*/#include
#define lowerlimit 0
#define upperlimit 100
#define stepsize 5
/* function prototypes */
double
celsiustofahrenheit
(double c)
;/* main program */
main()
}/* function: celsiustofahrenheit
* usage: f = celsiustofahrenheit(c);
* ----------------------------------
* this function returns the fahrenheit equivalent of the celsius
* temperature c.
*/double
celsiustofahrenheit
(double c)
在許多情況下,計算乙個函式需要做出很多測試或編寫乙個迴圈。這樣的細節問題增加了實現乙個函式的複雜性,但不會改變函式的基本形式。
示例如下:
/* input an integer n and calculate n!. */
#include
/* function prototype */
intfactorial
(int n)
;/* main program */
main()
/* function */
intfactorial
(int n)
return product;
}
在c語言中,函式可以返回任意資料型別的值。
例如,將用數值表示的月份(1~12)轉換為相應的用文字表示月份名(從january到december) 的string型別的函式,其**示例如下:
/* convert number 1-12 into month name. */
#include
/* function prototype */
char
*monthname
(int month)
;/* main program */
main()
/* function */
char
*monthname
(int month)
}
在monthname函式的switch語句中,每個case子句中的return語句自動地退出整個函式,因此不需要再寫乙個break語句。
如果在設計程式時讓每個case子句都以break或return語句結尾,可以避免除錯中的許多困難。
雖然c語言的函式可以返回任何型別的值,但有一種結果型別值得特別關注,那就是bool型別。
例如,列出某個整數區間中的偶數(如1-10),**示例如下:
/* list even numbers from lowerlimit to upperlimit. */
#include
#define lowerlimit 1
#define upperlimit 10
/* function prototype */
_bool
iseven
(int n)
;/* main program */
main()
}/* function */
_bool
iseven
(int n)
參考《c語言的科學和藝術》 —— 第5章 函式 庫函式編寫刪除函式
又是乙個利用庫函式編寫其他函式的演算法,刪除字串很簡單,我們在設計的函式裡面建立乙個新的字元陣列,這個字元陣列用來存放我們想要得到的字串,什麼是我們想要的字串?我們從頭遍歷原字串,下標在index到index length範圍之內的就是我們要刪除的字元,因此當我們遍歷到這個下標區間時,直接跳過,其他...
編寫strcpy 函式
已知 strcpy 函式的原型是 char strcpy char strdest,const char strsrc 其中 strdest 是目的字串,strsrc 是源字串。1 不呼叫c c 的字串庫函式,請編寫函式 strcpy char strcpy char strdest,const c...
oracle函式編寫
語法格式 sql語法方式建立的語法格式為 orreplace function function name 函式名稱 引數定義部分 return return datatype 定義返回值型別 as begin function body 函式體部分 return scalar expression...