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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2472|回復: 0
打印 上一主題 下一主題
收起左側

C語言教程(5)-函數

[復制鏈接]
跳轉到指定樓層
樓主
ID:99082 發表于 2015-12-10 03:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
--說說函數:


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

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

數學中的函數:

F(x)=2x+1

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

C語言中的函數:

int main (void)

{

函數體;

}

為什么C語言要使用函數呢?

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

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


--函數結構:


拿一個在單片機程序中最常用的函數--延遲函數為大家舉例。

一個完整的C函數可以說是由函數頭和函數體組成的。

#include “stdio.h”

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

我在上邊聲明了一個函數如下:

void Delay(uint8_t count)

void是修飾返回值

Delay是函數名

uint8_t是修飾參數

count是參數名

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

那么我就可以申明這樣一個函數

int Yanchi(uint32_t a)

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

許多程序員喜歡把函數看成是“黑盒子”,即對應一定的輸入會產生特定的結果和返回某個數值,而黑盒子內部的行為并不需要考慮,這種想法在以后編寫復雜的程序時是很實用的,如STM32基于庫文件編寫程序時大量調用庫函數還有移植嵌入式操作系統時也會調用大量函數。


--C標準庫函數:


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

輸入與輸出:stdio.h

頭文件stdio.h中定義了輸出和輸入函數、類型以及宏。用于處理和文件有關的操作、為printf函數提供格式化輸出轉換。

字符串函數:string.h

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

數學函數:math.h

頭文件math.h包含了一些數學函數和宏。

斷言:assert.h

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


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


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

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

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩成人精品在线 | 国产精品18久久久久久久 | 视频一区二区中文字幕 | 亚洲福利一区 | 国产精品免费视频一区 | 久草新在线 | 一级a性色生活片久久毛片波多野 | 精品国产99 | 国产日韩一区二区三免费高清 | 欧美一区二区在线 | 91在线电影| 一区二区三区四区在线 | 台湾佬成人网 | 国产精久久久久久久 | 欧美激情视频一区二区三区在线播放 | 在线国产欧美 | 午夜久久久久久久久久一区二区 | 日韩在线免费观看视频 | 日韩一区二区av | 国产a视频| 日本一区二区不卡 | 可以在线观看av的网站 | 欧美一二三区 | 日本一二三区电影 | 成人欧美一区二区三区白人 | 91精品国产91久久久久久吃药 | 国产一级电影在线观看 | 久久久久网站 | 精品国产欧美一区二区 | 天天爽网站 | 一级欧美一级日韩片免费观看 | 国产成人免费网站 | jvid精品资源在线观看 | 欧美成人精品一区二区男人看 | 久久88| 又爽又黄axxx片免费观看 | 97色伦网 | av三级 | 国产在线精品一区二区三区 | 伊人中文字幕 | 免费一区二区三区 |