欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1745|回復: 9
收起左側

什么是回調函數,有什么用

[復制鏈接]
ID:709761 發表于 2024-3-1 16:23 | 顯示全部樓層 |閱讀模式
回調函數是一個通過函數指針調用的函數。為什么不直接調用函數。
回復

使用道具 舉報

ID:277550 發表于 2024-3-1 23:31 | 顯示全部樓層
往往是用在SDK、或反復調用的代碼,等情況。
回復

使用道具 舉報

ID:1109793 發表于 2024-3-2 07:19 | 顯示全部樓層
我隱約記得回調的意思是函數自己可以調用自己的,不一定非要通過指針調用吧
回復

使用道具 舉報

ID:517951 發表于 2024-3-2 08:09 | 顯示全部樓層
用回調函數,目的就是為了功能的靈活, 可以隨時通過函數指針改變軟件功能
回復

使用道具 舉報

ID:1096586 發表于 2024-3-3 01:01 | 顯示全部樓層
在某些簡單和直接的情境下,直接調用函數就能解決問題。回調函數提供了更大的靈活性和可擴展性,使得代碼更容易維護和修改,在某些情境下,使用回調函數可能更為合適:
1、需要動態性和擴展性的情境: 使用回調函數可以在運行時指定要執行的代碼。這使得程序更具動態性,能夠根據需要在運行時更改其行為。如果直接調用函數,代碼的行為就是靜態的,不能在運行時更改。

2、需要解耦合的情境: 使用回調函數可以實現函數之間的解耦合。這意味著調用方和被調用方之間的關系更加靈活,它們可以相對獨立地演變。如果直接調用函數,兩者之間的關系更為緊密,不容易進行修改和擴展。

3、需要通用性的情境: 回調函數可以用于實現通用的接口和框架。一個函數可以接受一個回調函數,而不關心具體的實現,這使得這個函數更加通用和可重用。直接調用函數可能需要特定的實現,降低了通用性。

事件處理: 在事件驅動的編程中,回調函數常用于處理異步事件。當某個事件發生時,通過回調函數通知相應的處理代碼。這種方式比輪詢或者等待更加高效。
回復

使用道具 舉報

ID:1112070 發表于 2024-3-3 21:13 | 顯示全部樓層
函數指針的調用,即是一個通過函數指針調用的函數;
如果你把函數的指針(地址)作為參數傳遞給另一個函數,當這個指針被用來調用其所指向的函數時,就說這是回調函數。
回復

使用道具 舉報

ID:1101997 發表于 2024-4-10 10:29 | 顯示全部樓層
其實,回調函數更多的用途是程序上看起來整潔干凈,更容易模塊化,和直接調用區別不大,并且還犧牲了效率,但是目前處理器速度都很快,效率和整潔易用比較起來還是讓步一點。

可讀性和健壯性模塊化是現在程序設計的重要特點。
回復

使用道具 舉報

ID:1088185 發表于 2024-4-10 20:20 | 顯示全部樓層
首先明確一些慨念問題, 回調函數,函數指針調用的函數是兩件事.
回調函數其作用是連接底層驅動至應用層
例如, 要做一個串口接收及拆包的底層驅動,當接收到并解析數據包后,肯定需要一手段通知應用層去處理這數據,回調函數就是扮演這角色。
問題在寫底層驅動時你的應用層還沒做,我回調到哪兒都不適。
所以這回調函數就會通過函數指針的方式調用, 當你做應用層后, 就把此回調函數的指針指向你要的回調函數。
回復

使用道具 舉報

ID:1088185 發表于 2024-4-10 20:31 | 顯示全部樓層
1600277881 發表于 2024-4-10 20:20
首先明確一些慨念問題, 回調函數,函數指針調用的函數是兩件事.
回調函數其作用是連接底層驅動至應用層
...

比如你在用ST的庫,希望它處理數據接收,收到你所指定數量的數據后通知你去處理數據,人家ST在寫這庫的時候你的軟件還沒做呢, 你讓他怎樣通過直接調用函數來通知你?
所以要用函數指針的方式做回調函數,你的應用做好后,就把此回調函數的指針指向你要的回調函數就完事了
回復

使用道具 舉報

ID:195496 發表于 2024-4-12 08:33 | 顯示全部樓層
用函數指針可以方便的改變功能,指向不同的處理函數
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表