C語(yǔ)言函數(shù)怎么定義與調(diào)用

今天小編給大家分享一下C語(yǔ)言函數(shù)怎么定義與調(diào)用的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到嵐山網(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)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋嵐山地區(qū)。

函數(shù)的由來(lái)好處

首先在說(shuō)函數(shù)的使用與概述之前,我們先了解一下函數(shù)給我們編程帶來(lái)的好處????

  • 其實(shí)在匯編語(yǔ)言階段,函數(shù)這個(gè)概念還是比較模糊的。匯編語(yǔ)言的代碼往往就是從入口 開(kāi)始一條一條執(zhí)行,直到遇到跳轉(zhuǎn)指令(比如 ARM 指令 B、BL、BX、BLX 之類)然后才 跳轉(zhuǎn)到目的指令處執(zhí)行。這個(gè)時(shí)候所有的代碼僅僅是按其將要執(zhí)行的順序排列而已。后來(lái)人 們發(fā)現(xiàn)這樣寫代碼非常費(fèi)勁,容易出錯(cuò),也不方便。于是想出一個(gè)辦法,把一些功能相對(duì)來(lái) 說(shuō)能成為一個(gè)整體的代碼放到一起打包,通過(guò)一些數(shù)據(jù)接口和外界通信。這就是函數(shù)的由來(lái)。 那函數(shù)能給我們帶來(lái)什么好處呢?簡(jiǎn)單來(lái)說(shuō)可以概括成以下幾點(diǎn):

  1. 降低復(fù)雜性:使用函數(shù)的最首要原因是為了降低程序的復(fù)雜性,可以使用函數(shù)來(lái)隱 含信息,從而使你不必再考慮這些信息。

  2. 避免重復(fù)代碼段:如果在兩個(gè)不同函數(shù)中的代碼很相似,這往往意味著分解工作有 誤。這時(shí),應(yīng)該把兩個(gè)函數(shù)中重復(fù)的代碼都取出來(lái),把公共代碼放入一個(gè)新的通用函數(shù)中, 然后再讓這兩個(gè)函數(shù)調(diào)用新的通用函數(shù)。通過(guò)使公共代碼只出現(xiàn)一次,可以節(jié)約許多空間。 因?yàn)橹灰谝粋€(gè)地方改動(dòng)代碼就可以了。這時(shí)代碼也更可靠了。

  3. 限制改動(dòng)帶來(lái)的影響:由于在獨(dú)立區(qū)域進(jìn)行改動(dòng),因此,由此帶來(lái)的影響也只限于 一個(gè) 或最多幾個(gè)區(qū)域中。

  4. 隱含順序:如果程序通常先從用戶那里讀取數(shù)據(jù),然后再?gòu)囊粋€(gè)文件中讀取輔助數(shù) 據(jù),在設(shè)計(jì)系統(tǒng)時(shí)編寫一個(gè)函數(shù),隱含哪一個(gè)首先執(zhí)行的信息。

  5. 改進(jìn)性能:把代碼段放入函數(shù)也使得用更快的算法或執(zhí)行更快的語(yǔ)言(如匯編)來(lái) 改進(jìn)這段代碼的工作變得容易些。

  6. 進(jìn)行集中控制:專門化的函數(shù)去讀取和改變內(nèi)部數(shù)據(jù)內(nèi)容,也是一種集中的控制形 式。

  7. 隱含數(shù)據(jù)結(jié)構(gòu):可以把數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)細(xì)節(jié)隱含起來(lái)。

  8. 隱含指針操作:指針操作可讀性很差,而且很容易引發(fā)錯(cuò)誤。通過(guò)把它們獨(dú)立在函 數(shù)有序列表中,可以把注意力集中到操作意圖而不是集中到的指針操作本身。

  9. 隱含全局變量:參數(shù)傳遞。

函數(shù)概述 

  • 什么是函數(shù)?函數(shù)在數(shù)學(xué)當(dāng)中就已經(jīng)學(xué),當(dāng)你給過(guò)不同的x的值我就可以得到一個(gè)不同的結(jié)果,C語(yǔ)言的函數(shù)其實(shí)也是一樣的。函數(shù) (function)是完成指定特定人物的獨(dú)立的代碼程序。 語(yǔ)法規(guī)則定義了函數(shù)的結(jié)構(gòu)和使用方式。雖然C中的函數(shù)和其他語(yǔ)言 中的函數(shù)、子程序、過(guò)程作用相同,但是細(xì)節(jié)上略有不同。一些函數(shù)執(zhí)行某 些動(dòng)作,如:printf()把數(shù)據(jù)打印到屏幕上;一些函數(shù)找出一個(gè)值供程序使用, 如strlen()把指定字符串的長(zhǎng)度返回給程序。一般而言,函數(shù)可以同時(shí)具備以 上兩種功能。

  • 為什么要使用函數(shù)?首先,使用函數(shù)可以省去編寫重復(fù)代碼的苦差。如 果程序要多次完成某項(xiàng)任務(wù),那么只需編寫一個(gè)合適的函數(shù),就比如說(shuō):你要編寫代碼實(shí)現(xiàn)計(jì)算機(jī)的功能,那么你就可以用函數(shù)把計(jì)算機(jī)的代碼包裝到你自定義的函數(shù)當(dāng)中。就可以在需要 時(shí)使用這個(gè)函數(shù),或者在不同的程序中使用該函數(shù),就像許多程序中使用 putchar()一樣。其次,即使程序只完成某項(xiàng)任務(wù)一次,也值得使用函數(shù)。因 為函數(shù)讓程序更加模塊化,從而提高了程序代碼的可讀性,更方便后期修改、完善。

  • 概述函數(shù)構(gòu)成C程序的基本單元是函數(shù),函數(shù)包含程序的可執(zhí)行代碼。函數(shù)是一組一組執(zhí)行的代碼語(yǔ)句,每個(gè)C程序當(dāng)中都有函數(shù),即主函數(shù)是main()函數(shù)當(dāng)中,有且只有一個(gè)。注意:每個(gè)程序的入口以及出口都是位于 main函數(shù)之中。所有簡(jiǎn)單的程序都可以定義其他額外的函數(shù),編寫程序的時(shí)候,并不是將所有的內(nèi)容都放在主函數(shù) main當(dāng)中為了方便規(guī)劃、組織、編寫和調(diào)試,一般的做法是將一個(gè)程序劃分成若干個(gè)程序模塊,每一個(gè)模塊都可以完成一個(gè)功能。這樣不同的模塊程序可以由不同的人去完成,從而可以提高軟件的開(kāi)發(fā)效率。也就是說(shuō)主函數(shù)可以調(diào)用其它的函數(shù)。其它的函數(shù)當(dāng)中也是可以去互相調(diào)用的。

定義函數(shù) 

C語(yǔ)言的庫(kù)函數(shù)在編寫的時(shí)候是可以直接調(diào)用的,比如 printf輸出函數(shù)。而用戶自定義函數(shù)則必須由用戶對(duì)其進(jìn)行定義,在其函數(shù)的定義中完成函數(shù)所特定的內(nèi)容功能,這樣才能被其他函數(shù)調(diào)用。

C 語(yǔ)言中的函數(shù)定義的一般形式如下:

  • 返回類型    函數(shù)名稱(參數(shù)列表)

  • {

  • 函數(shù)體(函數(shù)實(shí)現(xiàn)特定功能的過(guò)程)

  • }

  1. 返回類型:一個(gè)函數(shù)可以返回一個(gè)值。返回類型 是函數(shù)返回的值的數(shù)據(jù)類型。有些函數(shù)執(zhí)行所需的操作而不返回值,在這種情況下,返回類型 是關(guān)鍵字 void。

  2. 函數(shù)名稱:這是函數(shù)的實(shí)際名稱。函數(shù)名和參數(shù)列表一起構(gòu)成了函數(shù)簽名。

  3. 參數(shù):參數(shù)就像是占位符。當(dāng)函數(shù)被調(diào)用時(shí),您向參數(shù)傳遞一個(gè)值,這個(gè)值被稱為實(shí)際參數(shù)。參數(shù)列表包括函數(shù)參數(shù)的類型、順序、數(shù)量。參數(shù)是可選的,也就是說(shuō),函數(shù)可能不包含參數(shù)。

  4. 函數(shù)主體:函數(shù)主體包含一組定義函數(shù)執(zhí)行任務(wù)的語(yǔ)句。

定義函數(shù)代碼 

代碼示例如下:

int Add(int x, int    //函數(shù)頭部分{
  int z = x + y;       //定義整形變量,實(shí)現(xiàn)加法的操作
  return z;            //返回操作結(jié)果,結(jié)束

函數(shù)頭:標(biāo)志一個(gè)函數(shù)代碼的開(kāi)始,這是函數(shù)的入口處。函數(shù)頭組成分為個(gè)部分。

C語(yǔ)言函數(shù)怎么定義與調(diào)用

函數(shù)體:函數(shù)頭的下方位置,由一對(duì)大括號(hào)括起來(lái),大括號(hào)決定了函數(shù)體的范圍。函數(shù)要實(shí)現(xiàn)特定的功能,都是在函數(shù)體通過(guò)代碼語(yǔ)句完成的,最后通過(guò) return語(yǔ)句返回實(shí)現(xiàn)的結(jié)果。

調(diào)用函數(shù)實(shí)例

下列是函數(shù)調(diào)用的實(shí)例,函數(shù)實(shí)現(xiàn)兩個(gè)數(shù)的比較!調(diào)用函數(shù)時(shí),傳遞所需參數(shù),如果函數(shù)返回一個(gè)值,則可以存儲(chǔ)返回值。

#define
int Compare_size(int x, int{
  if (x > y)
    return x;
  else
    return y;
}
#include<stdio.h>
int main(void){
  int num1 = 0;
  int num2 = 0;
  printf("請(qǐng)輸入:");
  scanf("%d %d", &num1, &num2);

  int result = Compare_size(num1, num2);
  printf("result = %d\n", result);
  return 0;
}

以上就是“C語(yǔ)言函數(shù)怎么定義與調(diào)用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文標(biāo)題:C語(yǔ)言函數(shù)怎么定義與調(diào)用
瀏覽路徑:http://bm7419.com/article8/gejdip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、外貿(mào)建站網(wǎng)站制作、App設(shè)計(jì)、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)