C語言中想要使用一個(gè)自定義函數(shù)一般有以下三個(gè)步驟:
站在用戶的角度思考問題,與客戶深入溝通,找到炎陵網(wǎng)站設(shè)計(jì)與炎陵網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋炎陵地區(qū)。
一、函數(shù)聲明:
在開發(fā)大型軟件都是采用多人合作開發(fā),一般一個(gè)人負(fù)責(zé)實(shí)現(xiàn)幾個(gè)功能,這些功能都是通過函數(shù)來實(shí)現(xiàn)。這總情況下我們一般采用函數(shù)聲明和定義分開模式。即函數(shù)聲明放在頭文件里。需要用到時(shí)包含相應(yīng)的頭文件及方法庫即可,庫函數(shù)就是這種模式。函數(shù)的聲明主要是說明函數(shù)的名稱以及其所需要的參數(shù)類型,參數(shù)可以只寫類型不寫變量名,函數(shù)定義是需要變量名。
二、函數(shù)定義
這一步主要是寫函數(shù)功能的實(shí)現(xiàn)方法,代碼塊,核心部分。比步可以在函數(shù)聲明時(shí)進(jìn)行,即聲明同時(shí)定義方法。不過這種方式不適合分享,因?yàn)槟悴灰欢ㄏ敕窒砟愕拇a,也許只想分享這個(gè)功能。不管哪種方法,在調(diào)用函數(shù)之前必須進(jìn)行函數(shù)聲明。
三、函數(shù)調(diào)用
經(jīng)過以上兩步,我們的函數(shù)已經(jīng)完成。接下來就是使用函數(shù),使用前先搞清楚函數(shù)需要有哪些參數(shù),參數(shù)一定要傳入合適的類型。第二函數(shù)有沒有返回值,返回值的含義。我們可以通過返回值判斷函數(shù)的執(zhí)行情況,一般函數(shù)最好有返回值。想清楚后直接調(diào)用函數(shù)即可。
來傳送子函數(shù)中的數(shù)組有多種方法——可以通過函數(shù)返回值返回地址傳遞數(shù)組;也可以通過函數(shù)輸入?yún)?shù)來傳遞數(shù)組;還可以通過全局變量來傳遞數(shù)組。
子函數(shù)本身可以直接在作用域中進(jìn)行調(diào)用。
1、通過函數(shù)返回值返回地址傳遞數(shù)組。
聲明函數(shù)時(shí)需要聲明函數(shù)返回值類型為對(duì)應(yīng)數(shù)組的地址,此時(shí)可以返回?cái)?shù)組的地址,結(jié)合數(shù)組元素的地址關(guān)系可以傳遞整個(gè)數(shù)組,同時(shí)可以根據(jù)數(shù)組的特性傳遞多個(gè)參數(shù)。
2、通過輸入?yún)?shù)傳遞數(shù)組。
聲明函數(shù)時(shí)提供空輸入?yún)?shù),調(diào)用函數(shù)時(shí)提供目標(biāo)數(shù)組,即可以通過該數(shù)組調(diào)用子函數(shù)中的數(shù)組,該方法也可以用于傳遞多個(gè)參數(shù)。
3、通過全局變量來傳遞數(shù)組。
聲明全局變量用于存儲(chǔ)子函數(shù)中的數(shù)組,此時(shí)可以在全局變量作用域中讀取調(diào)用子函數(shù)的數(shù)組。
注意:子函數(shù)是C語言模塊化編程思想的核心,其方法是通過輸入接口和輸出接口實(shí)現(xiàn)對(duì)黑盒的調(diào)用,故對(duì)其內(nèi)部數(shù)據(jù)的輸入和調(diào)用也需要通過輸入接口、輸出接口和程序的公共區(qū)域?qū)崿F(xiàn)。
要知道 C語言是由MAIN函數(shù)開始也由它結(jié)束。
每調(diào)用一次分函數(shù),只要運(yùn)行完畢后就會(huì)回到調(diào)用分函數(shù)的地方繼續(xù)往后執(zhí)行。
C語言主要靠函數(shù)調(diào)用和return在函數(shù)之間切換,很難做到在多層調(diào)用中直接返回主函數(shù)。雖然goto語句可以無條件跳轉(zhuǎn),但是必須在同一個(gè)函數(shù)中使用。
因此解決的方法也是用一個(gè)特殊的值作為需要返回的標(biāo)志,然后在兩層調(diào)用函數(shù)中都遇到該值就返回,但是這個(gè)方法也有兩個(gè)前提:
1)你的兩個(gè)子函數(shù)都是由返回值的函數(shù)
2)你選擇的特殊值和函數(shù)正常的返回的取值不會(huì)沖突,不會(huì)引起二義性。
同樣的操作,C++可以通過異常處理的throw和catch來實(shí)現(xiàn)從子函數(shù)的子函數(shù)直接返回主函數(shù),匯編語言可以用jmp指令跳轉(zhuǎn)實(shí)現(xiàn)這個(gè)需求。因此建議你的這個(gè)問題還是用C++ 的異常去解決比較好。
#include stdio.h
#include stdlib.h
int test1(int a)
{
printf("a=%d\n",a);
return 0
}
int main()
{
int a=1;
test1(a); /*這樣調(diào)用即可,使用函數(shù)名再加上參數(shù)就OK*/
return 0;
}
網(wǎng)頁標(biāo)題:c語言子函數(shù)怎樣調(diào)用,c語言子函數(shù)怎么用
分享地址:http://sd-ha.com/article6/hcosig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站改版、品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)