函數是用戶與程序的接口,在定義一個函數前,首先要清楚以下三個問題。1) 函數的功能實現及算法選擇。算法選擇會在后續文章詳細講解,本節重點關注函數的功能實現。一般選取能體現函數功能的函數名,且見名知意,如求和函數的函數名可取為 add,求最大值的函數名可取為 max,排序函數可取名為 sort 等。2) 需要用戶傳給該函數哪些參數、什么類型,即函數參數。3) 函數執行完后返回給調用者的參數及類型,即函數返回值類型。 函教定義格式 函數定義的一般格式為: 返回類型 函數名 (類型參數1,類型參數2,…) {函數體 }也可以不含參數,不含參數時,參數表中可寫關鍵字 void 或省略,為規范起見,教程中對沒有參數的函數,參數表中統一寫 void。例如: 類型 函數名 () {函數體 }等價于: 類型 函數名 (void) //建議的書寫方式 {函數體 } 如果該函數沒有返回類型,則為 void 類型。例如: void add (int x,int y) {printf ("sum=%d\n", x+y); } 除了 void 類型外,在函數體中,均需要顯式使用 return 語句返回對應的表達式的值。 函教返回值 函數的值是指調用函數結束時,執行函數體所得并返回給主調函數的值。 關于函數返回值說明如下。1) 帶返回值的函數,其值一般使用 return 語句返回給調用者。其格式為: return 表達式;或者 return (表達式);例如: int add (int a, int b) {return (a + b); //return 后為表達式 } 函數可以含一個或多個 return 語句,但每次調用時只能執行其中一個 return 語句。例如,求整數絕對值的函數: int f (int n) //含多個return語句,但每次調用只執行一個 {if (n = 0)return n;elsereturn -n; }
專注于為中小企業提供做網站、成都網站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業鹽山免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了1000多家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
聲明一個和記錄變量s,聲明一個階乘記錄變量t,再聲明一個計數變量n。用一個for循環,計數變量n從1開始步長為1增值至10為止;t初值設置為1,始終記錄它與n的當前值的乘積,就得到了n的當前值的階乘n!;s初值置0,累加每個n當前值時的階乘t,就完成了題設要求。代碼如下:
#include "stdio.h"int main(int argc,char *argv[]){ int s,n,t;
for(s=0,t=n=1;n11;s+=t*=n++);//用t記錄每個n的當前值的階乘并累加到s
printf("1!+2!+3!+...+10! = %d\n",s); return 0;}
擴展資料:
C語言編寫函數技巧:
1、原則上盡量少使用全局變量,因為全局變量的生命周期太長,容易出錯,也會長時間占用空間.各個源文件負責本身文件的全局變量,同時提供一對對外函數,方便其它函數使用該函數來訪問變量。
比如:niSet_ValueName(…);niGet_ValueName(…);不要直接讀寫全局變量,尤其是在多線程編程時,必須使用這種方式,并且對讀寫操作加鎖。
2、參數命名要恰當,順序要合理。
例如編寫字符串拷貝函數str_copy,它有兩個參數。如果把參數名字起為str1 和str2,例如
void str_copy (char *str1, char *str2);
那么很難搞清楚究竟是把str1 拷貝到str2 中,還是剛好倒過來。
可以把參數名字起得更有意義,如叫strSource 和strDestination。這樣從名字上就可以看出應該把strSource 拷貝到strDestination。
還有一個問題,這兩個參數那一個該在前那一個該在后?參數的順序要遵循程序員的習慣。一般地,應將目的參數放在前面,源參數放在后面。如果將函數聲明為:
void str_copy (char *strSource, char *strDestination);
別人在使用時可能會不假思索地寫成如下形式:
char str[20];
str_copy (str, “Hello World”); 參數順序顛倒
3、如果參數是指針,且僅作輸入參數用,則應在類型前加const,以防止該指針在函數體內被意外修改。例如:
void str_copy (char *strDestination,const char *strSource);
4、不要省略返回值的類型,如果函數沒有返回值,那么應聲明為void 類型。
如果沒有返回值,編譯器則默認為函數的返回值是int類型的。
5、在函數體的“入口處”,對參數的有效性進行檢查。尤其是指針參數,盡量使用assert宏做入口校驗,而不使用if語句校驗。
C語言函數可以使用如下語法來編寫:
```cint function_name(int param1, int param2){ // 函數的定義 // 變量聲明和定義 // 具體的操作 // 返回值 return result;}```
拓展:C語言函數的編寫實質上是編寫一個獨立的程序模塊,可以指定不同的參數,以及函數返回值。C語言函數也可以定義不同的函數原型,以及變量作用域,以實現更復雜的功能。
分享名稱:c語言函數編寫技巧 c語言怎樣編寫函數
路徑分享:http://vcdvsql.cn/article30/dopgppo.html
成都網站建設公司_創新互聯,為您提供虛擬主機、小程序開發、企業建站、軟件開發、Google、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯