您好,登錄后才能下訂單哦!
今天小編給大家分享一下C語言函數怎么定義與調用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
首先在說函數的使用與概述之前,我們先了解一下函數給我們編程帶來的好處????
其實在匯編語言階段,函數這個概念還是比較模糊的。匯編語言的代碼往往就是從入口 開始一條一條執行,直到遇到跳轉指令(比如 ARM 指令 B、BL、BX、BLX 之類)然后才 跳轉到目的指令處執行。這個時候所有的代碼僅僅是按其將要執行的順序排列而已。后來人 們發現這樣寫代碼非常費勁,容易出錯,也不方便。于是想出一個辦法,把一些功能相對來 說能成為一個整體的代碼放到一起打包,通過一些數據接口和外界通信。這就是函數的由來。 那函數能給我們帶來什么好處呢?簡單來說可以概括成以下幾點:
降低復雜性:使用函數的最首要原因是為了降低程序的復雜性,可以使用函數來隱 含信息,從而使你不必再考慮這些信息。
避免重復代碼段:如果在兩個不同函數中的代碼很相似,這往往意味著分解工作有 誤。這時,應該把兩個函數中重復的代碼都取出來,把公共代碼放入一個新的通用函數中, 然后再讓這兩個函數調用新的通用函數。通過使公共代碼只出現一次,可以節約許多空間。 因為只要在一個地方改動代碼就可以了。這時代碼也更可靠了。
限制改動帶來的影響:由于在獨立區域進行改動,因此,由此帶來的影響也只限于 一個 或最多幾個區域中。
隱含順序:如果程序通常先從用戶那里讀取數據,然后再從一個文件中讀取輔助數 據,在設計系統時編寫一個函數,隱含哪一個首先執行的信息。
改進性能:把代碼段放入函數也使得用更快的算法或執行更快的語言(如匯編)來 改進這段代碼的工作變得容易些。
進行集中控制:專門化的函數去讀取和改變內部數據內容,也是一種集中的控制形 式。
隱含數據結構:可以把數據結構的實現細節隱含起來。
隱含指針操作:指針操作可讀性很差,而且很容易引發錯誤。通過把它們獨立在函 數有序列表中,可以把注意力集中到操作意圖而不是集中到的指針操作本身。
隱含全局變量:參數傳遞。
什么是函數?函數在數學當中就已經學,當你給過不同的x的值我就可以得到一個不同的結果,C語言的函數其實也是一樣的。函數 (function)是完成指定特定人物的獨立的代碼程序。 語法規則定義了函數的結構和使用方式。雖然C中的函數和其他語言 中的函數、子程序、過程作用相同,但是細節上略有不同。一些函數執行某 些動作,如:printf()把數據打印到屏幕上;一些函數找出一個值供程序使用, 如strlen()把指定字符串的長度返回給程序。一般而言,函數可以同時具備以 上兩種功能。
為什么要使用函數?首先,使用函數可以省去編寫重復代碼的苦差。如 果程序要多次完成某項任務,那么只需編寫一個合適的函數,就比如說:你要編寫代碼實現計算機的功能,那么你就可以用函數把計算機的代碼包裝到你自定義的函數當中。就可以在需要 時使用這個函數,或者在不同的程序中使用該函數,就像許多程序中使用 putchar()一樣。其次,即使程序只完成某項任務一次,也值得使用函數。因 為函數讓程序更加模塊化,從而提高了程序代碼的可讀性,更方便后期修改、完善。
概述函數 構成C程序的基本單元是函數,函數包含程序的可執行代碼。函數是一組一組執行的代碼語句,每個C程序當中都有函數,即主函數是main()函數當中,有且只有一個。注意:每個程序的入口以及出口都是位于 main 函數之中。所有簡單的程序都可以定義其他額外的函數,編寫程序的時候,并不是將所有的內容都放在主函數 main 當中為了方便規劃、組織、編寫和調試,一般的做法是將一個程序劃分成若干個程序模塊,每一個模塊都可以完成一個功能。這樣不同的模塊程序可以由不同的人去完成,從而可以提高軟件的開發效率。也就是說主函數可以調用其它的函數。其它的函數當中也是可以去互相調用的。
C語言的庫函數在編寫的時候是可以直接調用的,比如 printf 輸出函數。而用戶自定義函數則必須由用戶對其進行定義,在其函數的定義中完成函數所特定的內容功能,這樣才能被其他函數調用。
C 語言中的函數定義的一般形式如下:
返回類型 函數名稱(參數列表)
{
函數體(函數實現特定功能的過程)
}
返回類型:一個函數可以返回一個值。返回類型 是函數返回的值的數據類型。有些函數執行所需的操作而不返回值,在這種情況下,返回類型 是關鍵字 void。
函數名稱:這是函數的實際名稱。函數名和參數列表一起構成了函數簽名。
參數:參數就像是占位符。當函數被調用時,您向參數傳遞一個值,這個值被稱為實際參數。參數列表包括函數參數的類型、順序、數量。參數是可選的,也就是說,函數可能不包含參數。
函數主體:函數主體包含一組定義函數執行任務的語句。
代碼示例如下:
int Add(int x, int //函數頭部分{ int z = x + y; //定義整形變量,實現加法的操作 return z; //返回操作結果,結束
函數頭:標志一個函數代碼的開始,這是函數的入口處。函數頭組成分為③個部分。
函數體:函數頭的下方位置,由一對大括號括起來,大括號決定了函數體的范圍。函數要實現特定的功能,都是在函數體通過代碼語句完成的,最后通過 return 語句返回實現的結果。
下列是函數調用的實例,函數實現兩個數的比較!調用函數時,傳遞所需參數,如果函數返回一個值,則可以存儲返回值。
#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("請輸入:"); scanf("%d %d", &num1, &num2); int result = Compare_size(num1, num2); printf("result = %d\n", result); return 0; }
以上就是“C語言函數怎么定義與調用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。