久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 2534|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言教程(5)-函數(shù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:99082 發(fā)表于 2015-12-10 03:41 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
--說(shuō)說(shuō)函數(shù):


函數(shù)這兩個(gè)字相信大家都不會(huì)陌生,尤其對(duì)于學(xué)習(xí)理科工科的同學(xué)們,函數(shù)更是那最不可觸及的痛。英文單詞為:function,所以我們學(xué)的數(shù)學(xué)中的函數(shù)關(guān)系一般用F(x)表示吧(我個(gè)人推測(cè)的,因?yàn)闆](méi)人跟我說(shuō)過(guò)這個(gè)貌似無(wú)聊的事,不過(guò)為什么翻譯成函數(shù)呢,真是)。

函數(shù)的功能是什么啊?大家學(xué)數(shù)學(xué)時(shí)(無(wú)論是高中的代數(shù)還是大學(xué)的微積分)都主要是跟函數(shù)打交道,此處刨除定義域值域啊之類(lèi)不談,函數(shù)的功能可以簡(jiǎn)單的說(shuō)成輸入一個(gè)數(shù)就會(huì)有一個(gè)唯一的確定的值輸出

數(shù)學(xué)中的函數(shù):

F(x)=2x+1

C語(yǔ)言里同樣需要函數(shù),而且函數(shù)在C語(yǔ)言中扮演這重要的角色。C語(yǔ)言中函數(shù)是用于完成特定任務(wù)的程序代碼的自包含單元。

C語(yǔ)言中的函數(shù):

int main (void)

{

函數(shù)體;

}

為什么C語(yǔ)言要使用函數(shù)呢?

第一、使用函數(shù)主要是為了調(diào)用,在每次使用時(shí)調(diào)用函數(shù),就不用一遍又一遍的重新編寫(xiě)代碼。函數(shù)可以在任何需要的地方調(diào)用,并且同一個(gè)函數(shù)可以在不同的程序中調(diào)用。

第二、使用函數(shù)使程序更加模塊化,即使某種功能在程序中只是使用一次,將其以函數(shù)的形式實(shí)現(xiàn)也是有好處的,程序的模塊化使得程序的閱讀、修改、移植都更加方便。


--函數(shù)結(jié)構(gòu):


拿一個(gè)在單片機(jī)程序中最常用的函數(shù)--延遲函數(shù)為大家舉例。

一個(gè)完整的C函數(shù)可以說(shuō)是由函數(shù)頭和函數(shù)體組成的。

#include “stdio.h”

該句的作用相當(dāng)于你在文件中該行所在的位置鍵入了文件stdio.h(stdio.h是所以C語(yǔ)言編譯包的一個(gè)標(biāo)準(zhǔn)部分,這個(gè)文件對(duì)關(guān)鍵字的輸入和顯示輸出提供支持)的完整內(nèi)容。實(shí)際上,它是一種復(fù)制和粘貼的操作,這樣可以方便的在多個(gè)程序間共享共用的信息。

我在上邊聲明了一個(gè)函數(shù)如下:

void Delay(uint8_t count)

void是修飾返回值

Delay是函數(shù)名

uint8_t是修飾參數(shù)

count是參數(shù)名

C程序中包含一個(gè)或多個(gè)函數(shù),它們是C程序的基本模塊。上面聲明了一個(gè)這樣的函數(shù)(大家給解釋這個(gè)函數(shù)的結(jié)果,順路和大家一起寫(xiě)個(gè)我們想寫(xiě)的新的函數(shù)):函數(shù)名叫作Delay(英文單詞delay就是延遲的意思,這個(gè)是可以根據(jù)你使用的需求自己決定的,比如我就想寫(xiě)成Yanchi,拼音更好記),這個(gè)函數(shù)接受參數(shù)叫count(英文單詞count是計(jì)數(shù)的意思,這個(gè)參數(shù)的名字你也可以自己決定,比如我就想寫(xiě)成a,count我記不住)且根據(jù)參數(shù)名前邊的uint8_t可知道此參數(shù)為8位無(wú)符號(hào)整數(shù)型(范圍為0--255的整數(shù),額,這個(gè)例子舉的其實(shí)有點(diǎn)小了,真正使用時(shí)建議使用32位的 那我就改成uint32_t)。而前邊的void修飾的是返回值,void的英文意思是空,什么都沒(méi)有,就是不返回任何數(shù)。我就想要個(gè)返回值,返回個(gè)0告訴我延遲已經(jīng)解釋了。

那么我就可以申明這樣一個(gè)函數(shù)

int Yanchi(uint32_t a)

而函數(shù)體就是大家想讓函數(shù)執(zhí)行的語(yǔ)句,就要靠大家按照自己的想法編寫(xiě)了。

許多程序員喜歡把函數(shù)看成是“黑盒子”,即對(duì)應(yīng)一定的輸入會(huì)產(chǎn)生特定的結(jié)果和返回某個(gè)數(shù)值,而黑盒子內(nèi)部的行為并不需要考慮,這種想法在以后編寫(xiě)復(fù)雜的程序時(shí)是很實(shí)用的,如STM32基于庫(kù)文件編寫(xiě)程序時(shí)大量調(diào)用庫(kù)函數(shù)還有移植嵌入式操作系統(tǒng)時(shí)也會(huì)調(diào)用大量函數(shù)。


--C標(biāo)準(zhǔn)庫(kù)函數(shù):


ANSIC C標(biāo)準(zhǔn)要求符合該標(biāo)準(zhǔn)的C語(yǔ)言實(shí)現(xiàn)必須支持由其定義的標(biāo)準(zhǔn)庫(kù)函數(shù)。C語(yǔ)言本身的關(guān)鍵字只是定義了最基本的語(yǔ)言控制功能,其他的所以功能都是由函數(shù)實(shí)現(xiàn)。我們可以說(shuō)C語(yǔ)言是一種基于函數(shù)的高級(jí)語(yǔ)言,而這其中標(biāo)準(zhǔn)庫(kù)函數(shù)實(shí)現(xiàn)了一些最基礎(chǔ)基本的底層操作和常用工具。

輸入與輸出:stdio.h

頭文件stdio.h中定義了輸出和輸入函數(shù)、類(lèi)型以及宏。用于處理和文件有關(guān)的操作、為printf函數(shù)提供格式化輸出轉(zhuǎn)換。

字符串函數(shù):string.h

頭文件string.h定義了兩組字符串函數(shù)。

數(shù)學(xué)函數(shù):math.h

頭文件math.h包含了一些數(shù)學(xué)函數(shù)和宏。

斷言:assert.h

assert宏用于為程序增加診斷功能。


有大一學(xué)弟們反映說(shuō)這個(gè)每周文章里邊說(shuō)的C語(yǔ)言知識(shí)和學(xué)校發(fā)的教材不同步,我倒是沒(méi)核實(shí)因?yàn)槲沂诸^上沒(méi)有學(xué)校的教材,當(dāng)年是學(xué)過(guò)但早忘了都講啥了。只想說(shuō)不同步很正常的,教材里的內(nèi)容還是比較有限的,咱們課堂好像后幾章也沒(méi)講,大家可以自己找?guī)妆緯?shū)(我前邊C語(yǔ)言開(kāi)講啦(一)里專(zhuān)門(mén)推薦了基本比較好的書(shū)),其實(shí)主要是多寫(xiě)程序多讀程序(寫(xiě)的同時(shí)自然就讀了),多多的借鑒精品程序(說(shuō)白了也就是抄和改別人寫(xiě)好無(wú)誤的程序,并保證你抄改完后還能正常使用)(其實(shí)我覺(jué)得這個(gè)寫(xiě)程序拷貝別人的參考別人的也不丟人,高考作文大家還借鑒呢是吧,再說(shuō)誰(shuí)就敢說(shuō)我的程序都是自己寫(xiě)的呢。千古文章一大抄。)在實(shí)際中遇到解決不了的問(wèn)題,就翻書(shū)找找知識(shí)點(diǎn)。如果一段時(shí)間積累了不少問(wèn)題了,那就靜下心來(lái)前期后后的好好學(xué)學(xué)這部分的知識(shí)。
以下是本系列教程文章列表:歡迎大家踴躍討論,有問(wèn)題可在51黑論壇回帖提出.


C語(yǔ)言基礎(chǔ)教程(1):http://m.zg4o1577.cn/bbs/dpj-41177-1.html
C語(yǔ)言教程(2)-關(guān)鍵字 變量:http://m.zg4o1577.cn/bbs/dpj-41178-1.html
C語(yǔ)言教程(3)-控制語(yǔ)句:http://m.zg4o1577.cn/bbs/dpj-41179-1.html
C語(yǔ)言教程(4)-運(yùn)算符:http://m.zg4o1577.cn/bbs/dpj-41180-1.html
C語(yǔ)言教程(5)-函數(shù):http://m.zg4o1577.cn/bbs/dpj-41181-1.html
C語(yǔ)言教程(6)-數(shù)組與函數(shù)指針:http://m.zg4o1577.cn/bbs/dpj-41182-1.html

51單片機(jī)教程:http://m.zg4o1577.cn/bbs/mcu-xuexi-1.html
STM32教程:http://m.zg4o1577.cn/bbs/dpj-41167-1.html

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91久久国产综合久久 | 一级片在线视频 | 久久免费国产视频 | 手机av在线免费观看 | 一区二区三区久久 | 99视频网站 | 97超碰在线免费观看 | 亚洲一级黄色 | 99中文字幕 | 国产区视频| 一级国产片 | 亚洲午夜天堂 | 欧美视频在线一区 | 欧美激情视频一区二区 | www.青青草| 青青草手机在线视频 | 青青草国产成人av片免费 | 黄色一级大片 | 国产三级在线观看视频 | 国产成人精品网站 | 伊人91 | 成人激情片 | 亚洲国产欧美日韩 | 九九天堂| 精品视频一区二区三区 | 欧美日韩亚洲一区二区 | 在线看片a | 国产成人99久久亚洲综合精品 | 黄色片在线免费观看 | 巨骚综合 | 97超碰免费 | 成人深夜福利 | 日韩欧美国产综合 | 精品国产99久久久久久宅男i | 在线看h片 | 成人精品福利 | 欧美在线网站 | 天天操夜夜干 | 日韩精品影院 | 亚洲一区二区av | 亚洲欧美在线观看 |