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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

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


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

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

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

F(x)=2x+1

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

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

int main (void)

{

函數(shù)體;

}

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

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

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


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


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

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

#include “stdio.h”

該句的作用相當(dāng)于你在文件中該行所在的位置鍵入了文件stdio.h(stdio.h是所以C語言編譯包的一個(gè)標(biāo)準(zhǔn)部分,這個(gè)文件對關(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é)果,順路和大家一起寫個(gè)我們想寫的新的函數(shù)):函數(shù)名叫作Delay(英文單詞delay就是延遲的意思,這個(gè)是可以根據(jù)你使用的需求自己決定的,比如我就想寫成Yanchi,拼音更好記),這個(gè)函數(shù)接受參數(shù)叫count(英文單詞count是計(jì)數(shù)的意思,這個(gè)參數(shù)的名字你也可以自己決定,比如我就想寫成a,count我記不住)且根據(jù)參數(shù)名前邊的uint8_t可知道此參數(shù)為8位無符號整數(shù)型(范圍為0--255的整數(shù),額,這個(gè)例子舉的其實(shí)有點(diǎn)小了,真正使用時(shí)建議使用32位的 那我就改成uint32_t)。而前邊的void修飾的是返回值,void的英文意思是空,什么都沒有,就是不返回任何數(shù)。我就想要個(gè)返回值,返回個(gè)0告訴我延遲已經(jīng)解釋了。

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

int Yanchi(uint32_t a)

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

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


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


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

輸入與輸出:stdio.h

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


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

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

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

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美国产一区二区 | 狠狠操av | 精品视频一区二区 | 亚洲电影一区 | 91精品国产91久久久 | 色欧美综合 | 超碰导航| 欧美成年黄网站色视频 | 久久久久久九九九九 | 色天堂影院 | 亚洲一区二区三区在线视频 | 欧美极品在线视频 | 日韩日b视频 | 国产精品久久久久久久久久久久 | 久色一区 | 91精品国产综合久久久久 | 91在线电影 | 亚洲一区二区三区在线视频 | 一区二区三区免费在线观看 | 韩国精品在线观看 | 久久精品一级 | 亚洲电影在线播放 | 久久精品中文字幕 | 日本h片在线观看 | 黑人精品| 精品福利在线 | 欧美xxxx色视频在线观看免费 | 亚洲精品天堂 | 综合久久av| 久久伊人青青草 | 亚洲午夜av | 在线观看av网站永久 | 天天综合永久入口 | 深夜爽视频| 日韩a | 牛牛热在线视频 | 91超碰在线观看 | 久久久久综合 | 国产亚洲网站 | 精品不卡 | 欧美激情综合五月色丁香小说 |