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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3137|回復: 0
收起左側

C語言函數指針的探索

[復制鏈接]
ID:51337 發(fā)表于 2013-7-31 01:31 | 顯示全部樓層 |閱讀模式
一談到C語言,很多學過編程的同學會感覺比較容易。但是談到C語言的指針,大多數的同學就不這么認為了,但是當談到函數指針時,很多在校的同學更是望而卻步。今天就來探索一下函數指針的使用:
用過Visual studio的同學一定會對微軟的自動提示功能大為驚嘆,編寫C語言有沒有好的工具呢,答案是肯定的。向大家推薦一款Source Insight軟件,使用方法大家自己摸索。
1.函數指針的聲明,初始化與調用 50.png
51.png

從這里大家可以看出,函數指針其實并沒有什么神奇的地方,與int *型的整型指針并無差異。需要說明的是:對于函數的函數名其實就是一個地址,所以h = &welcome也可以寫為
h = welcome,一般都是這樣應用,在上面只是為了做對比。
2.函數指針作為形參回調函數的實現
我們知道int *指針可以作為函數的參數進行傳遞并參與運算,但函數指針可不可以作為函數的參數進行傳遞呢?下面以一個比較實用的單片機常見的例子按鍵處理函數為大家講解一下函數指針作為形參的應用。在這里為了讓大家看到效果,將button定義為0

52.png
53.png
//按鍵處理函數
54.png
//主函數
55.png
56.png
3.實用typedef定義函數指針
上面我們使用了void (*handler)(void) 57.png 作為參數進行傳遞,我們可以實用typedef定義這個函數指針,使程序更加簡潔。
改動的地方如圖所示,效果上同,請自己測試。
修改的地方
58.png
4.綜合例子
使用struct結構體和函數指針結合實現模塊化編程的封裝
希望對大家有所啟發(fā)。
例子如下:
led.c的內容如下:
59.png
led.h的內容如下:
60.png
Main.c的內容如下:
61.png
                                                 Main.c part1
62.png
                                                        Main.c part2
運行結果:
62.png
   
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产免费 | wwww.xxxx免费 | 91免费在线看 | jdav视频在线观看免费 | 精品国产一区二区三区久久久四川 | 国产精品jizz在线观看老狼 | ririsao久久精品一区 | 精品在线免费观看视频 | 91亚洲国产成人久久精品网站 | 亚洲精品一区二区 | 国产精品欧美日韩 | 欧美日韩精品久久久免费观看 | 欧美在线高清 | 91 在线| 日韩一区二区黄色片 | 97精品视频在线 | 久草.com | 亚洲精品一区二区三区中文字幕 | 中文字幕在线一区二区三区 | 久久99精品久久久久 | 第四色播日韩第一页 | 久久99国产精一区二区三区 | 亚洲成人一区二区 | 亚洲国产成人精 | 在线看亚洲 | 精品色| 欧美精品福利视频 | 国产精品欧美一区二区三区不卡 | 久久久久国产精品一区二区 | 精品国产一区二区三区日日嗨 | 殴美黄色录像 | 人人看人人射 | 日韩欧美高清 | 超碰日本 | 999精品视频| 青娱乐av| 免费午夜视频 | 亚洲天堂一区二区 | 免费精品视频在线观看 | 亚洲综合日韩精品欧美综合区 | 亚洲成人午夜在线 |