函數(shù)是指將一組能完成一個(gè)功能或多個(gè)功能的語(yǔ)句放在一起的 代碼結(jié)構(gòu)。在C語(yǔ)言程序中,至少會(huì)包含一個(gè)函數(shù),及主函數(shù)main()。本文將詳細(xì)講解關(guān)于函數(shù)的相關(guān)內(nèi)容。
Part1函數(shù)概述
我們都知道函數(shù)是數(shù)學(xué)里的重要組成部分,數(shù)學(xué)中我們常見(jiàn)到函數(shù)的概念,但是你了解C語(yǔ)言中的函數(shù)嗎?其實(shí)函數(shù)就相當(dāng)于一個(gè)子程序,那什么是子程序呢?
- 在計(jì)算機(jī)科學(xué)中,子程序是一個(gè)大型程序中的某部分代碼, 由一個(gè)或多個(gè)語(yǔ)句塊組成。它負(fù)責(zé)完成某項(xiàng)特定任務(wù),而且相較于其他代 碼,具備相對(duì)的獨(dú)立性。
- 一般會(huì)有輸入參數(shù)并有返回值,提供對(duì)過(guò)程的封裝和細(xì)節(jié)的隱藏。這些代碼通常被集成為 軟件庫(kù) 。
Part2C語(yǔ)言中函數(shù)的分類
2.1 庫(kù)函數(shù)
2.1.1 什么是庫(kù)函數(shù)?
其實(shí)庫(kù)函數(shù)就是存放在函數(shù)庫(kù)中的函數(shù),具有明確的功能、入口調(diào)用參數(shù)和返回值。下面舉一些例子:
- 我們知道在我們學(xué)習(xí)C語(yǔ)言編程的時(shí)候,總是在一個(gè)代碼編寫(xiě)完成之后迫不及待的想知道結(jié)果,想把這個(gè)結(jié)果打印到我們的屏幕上看看。這個(gè)時(shí)候我們會(huì)頻繁的使用一個(gè)功能:將信息按照一定的格式打印到屏幕上 (printf) 。
- 在編程的過(guò)程中我們會(huì)頻繁的做一些字符串的拷貝工作 (strcpy) 。
- 在編程中我們也計(jì)算,總是會(huì)計(jì)算n的k次方這樣的運(yùn)算(pow)。
2.1.2 庫(kù)函數(shù)是C語(yǔ)言提供的嗎?
不是,C語(yǔ)言標(biāo)準(zhǔn)中約定好,由編譯器的廠商提供實(shí)現(xiàn)。
2.1.3 為什么會(huì)有庫(kù)函數(shù)呢?
像上面我們描述的基礎(chǔ)功能,它們不是業(yè)務(wù)性的代碼。我們?cè)陂_(kāi)發(fā)的過(guò)程中每個(gè)程序員都可能用的到,為了支持可移植性和提高程序的效率,所以C語(yǔ)言的基礎(chǔ)庫(kù)中提供了一系列類似的庫(kù)函數(shù),方便程序員進(jìn)行軟件開(kāi)發(fā)。
2.1.4 那怎么學(xué)習(xí)庫(kù)函數(shù)呢?
我們?cè)陂_(kāi)發(fā)的過(guò)程中每個(gè)程序員都可能用的到,為了支持可移植性和提高程序的效率,所以C語(yǔ)言的基礎(chǔ)庫(kù)中提供了一系列類似的庫(kù)函數(shù),方便程序員進(jìn)行軟件開(kāi)發(fā)。
這里我給大家推薦一個(gè)可以很好查到有關(guān)庫(kù)函數(shù)的網(wǎng)站鏈接:https://cplusplus.com/
簡(jiǎn)單的總結(jié),C語(yǔ)言常用的庫(kù)函數(shù)都有:
- IO函數(shù)
- 字符串操作函數(shù)
- 字符操作函數(shù)
- 內(nèi)存操作函數(shù)
- 時(shí)間/日期函數(shù)
- 數(shù)學(xué)函數(shù)
- 其他庫(kù)函數(shù)
注:庫(kù)函數(shù)必須知道的一個(gè)秘密就是:使用庫(kù)函數(shù),必須包含 #include 對(duì)應(yīng)的頭文件。
2.2 自定義函數(shù)
如果庫(kù)函數(shù)能干所有的事情,那還要程序員干什么?
所以更加重要的是 自定義函數(shù) ?。?!**自定義函數(shù)和庫(kù)函數(shù)一樣,有函數(shù)名,返回值類型和函數(shù)參數(shù)。**所謂自定義就是這些都是我們自己來(lái)設(shè)計(jì)。這給我們自己一個(gè)很大的發(fā)揮空間?。?!函數(shù)的組成,我們舉一個(gè)例子:寫(xiě)一個(gè)函數(shù)可以找出兩個(gè)整數(shù)中的最大值。
#include < stdio.h >
//get_max函數(shù)的設(shè)計(jì)
int get_max(int x, int y)
{
return (x > y) ? (x) : (y);//三目運(yùn)算符:x大于y返回x,x小于y返回y
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int max = get_max(num1, num2);
printf("max = %dn", max);
return0;
}
這里我們輸入a=10 b=20結(jié)果是正確的,說(shuō)明我們自己定義的函數(shù)還是比較成功的哈
-
封裝
+關(guān)注
關(guān)注
127文章
7992瀏覽量
143400 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137707 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4346瀏覽量
62968 -
代碼
+關(guān)注
關(guān)注
30文章
4825瀏覽量
69043
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論