色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

介紹一種高效率的c語言狀態機

冬至配餃子 ? 來源:最后一個bug ? 作者:bug菌 ? 2022-08-12 09:07 ? 次閱讀

/***高效率狀態機***/

狀態機對于有一定編程經驗的程序員一定會用到,因為對于我們的各種各樣的模塊他們都會有各種狀態,其他模塊都會根據這些狀態和數據進行處理;同時在網絡編程方面也會根據網絡狀態和消息類型進行相應處理等等方面狀態機的使用是非常廣泛的,我們通常稱這種狀態機為有限狀態機—FSM

在進行有限狀態機編寫之前,我們需要進行狀態的梳理,
最好是能畫UML圖或者是簡單的畫一些狀態圖,那么我們平時都是如何實現這個狀態機框架的呢?

1)用判斷語句進行狀態機的分支


if(statue == STATUE_1)sStatue1Process();

else if(statue == STATUE_2)sStatue2Process();

else if(statue == STATUE_3)sStatue3Process();

elsesStatue4Process();


上面通過if/else分支了4種狀態,分別每種狀態有各自的處理辦法process函數,那么狀態之間如何轉換呢?在我們的狀態處理函數里面,會
通過處理當前狀態的相關事務,然后通過相關條件改變statue,如statue=STATUE_2,從而下一次進入對應的狀態中!

那么上面我們是通過分支來進行處理,同樣我們也可以使用switch來進行處理!
至于選擇if/else還是switch,我們之前有個文章進行分析,大家可以前往閱讀,這兩種分支語句對于不太多的狀態仍然是首選的,而對于我們的狀態較多,那么可能通過判斷會浪費一些時間,為了提高效率,我們提出了第二種方法。

2)用函數指針高效提高狀態機效率

參考代碼如下:

pYYBAGL1p5GABeHLAAFYvFCT2hU881.png

poYBAGL1p5iANUklAAEKVJLXQxg843.png

pYYBAGL1p56AbI1MAACoAODWsEc134.png

按照預期輸出了最終的結果,該辦法類似于用空間換了時間,把狀態和處理進行了直接綁定,這樣會使用掉一些內存,不過對于整個軟件代碼而言是不值一提的!

優化:我們可能對于狀態處理還需要傳入一些數據,我們可以優化函數指針讓其變成含參數的形式!等等優化版本大同小異!(哈哈,上面的代碼手機打得,風格寫得不好大家請見諒)


審核編輯:劉清


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137378
  • 狀態機
    +關注

    關注

    2

    文章

    492

    瀏覽量

    27613
  • fsm
    fsm
    +關注

    關注

    0

    文章

    35

    瀏覽量

    12835
收藏 人收藏

    評論

    相關推薦

    一種新型高效率的服務器電源系統

    一種新型高效率的服務器電源系統
    發表于 12-19 16:45 ?1次下載

    Simulink中的狀態機建模方法 Simulink數據可視化與分析功能

    。 1.2 使用狀態機圖(Stateflow) Stateflow是Simulink的個附加產品,專門用于設計和模擬狀態機
    的頭像 發表于 12-12 09:27 ?701次閱讀

    觸發器和狀態機的關系是什么

    觸發器和狀態機在數字電路設計中有著緊密的關系,它們共同構成了時序邏輯電路的基礎,用于實現數據的存儲、處理和傳輸。
    的頭像 發表于 08-12 11:24 ?516次閱讀

    高效率二極管如何識別判斷

    高效率二極管在在電源管理和電能轉換領域,主要特點是具有低正向壓降和快速的開關速度,從而提高電路的整體效率高效率二極管的基本特性高效率
    的頭像 發表于 08-12 09:51 ?513次閱讀
    <b class='flag-5'>高效率</b>二極管如何識別判斷

    c類放大器最高效率是什么

    C類放大器是一種無線電頻率放大器,它在工作時,晶體管的導通時間小于個周期的半,因此被稱為C類放大器。
    的頭像 發表于 08-01 14:46 ?562次閱讀

    如何在FPGA中實現狀態機

    在FPGA(現場可編程門陣列)中實現狀態機一種常見的做法,用于控制復雜的數字系統行為。狀態機能夠根據當前的輸入和系統狀態,決定下步的動作
    的頭像 發表于 07-18 15:57 ?693次閱讀

    電源設計:同步整流帶來的不僅僅是高效率

    ,增益急劇下降,原因是極點導致更低的交叉頻率,從而降低了瞬態響應。總之,同步整流可提高效率,同時也能夠極大地幫助瞬態負載調節。它為電源預加載提供了一種高效的方法。另外,相比擺動電感,它還擁有更加穩定的控制環路特性。它提高了傳統降
    發表于 07-11 11:17

    玩轉Spring狀態機

    說起Spring狀態機,大家很容易聯想到這個狀態機和設計模式中狀態模式的區別是啥呢?沒錯,Spring狀態機就是狀態模式的
    的頭像 發表于 06-25 14:21 ?992次閱讀
    玩轉Spring<b class='flag-5'>狀態機</b>

    關于SMU狀態機的問題求解

    我有些關于 SMU 狀態機的問題。 假設由于某種原因,SMU 已進入故障狀態。 手冊指出,要返回運行狀態并將 FSP 恢復到無故障狀態,應
    發表于 05-29 08:18

    在Verilog中實現Moore型和Mealy型狀態機的方法簡析

    編寫能夠被綜合工具識別的狀態機,首先需要理解狀態機的基本概念和分類。狀態機(FSM)是表示有限個狀態以及在這些狀態之間轉換的邏輯結構。
    的頭像 發表于 05-01 11:38 ?1758次閱讀

    嵌入式編程,如何用 C 語言實現狀態機設計?

    狀態機模式是一種行為模式,通過多態實現不同狀態的調轉行為的確是一種很好的方法,只可惜在嵌入式環境下,有時只能寫純C代碼,并且還需要考慮代碼的
    發表于 04-23 11:00

    如何采用“狀態機”解析UART數據幀

    如果個系統接收上述“不定長度”的協議幀,將會有個挑戰--如何高效接收與解析。 為簡化系統設計,我們強烈建議您采用“狀態機”來解析UART數據幀。
    的頭像 發表于 03-25 14:29 ?767次閱讀
    如何采用“<b class='flag-5'>狀態機</b>”解析UART數據幀

    高效率的DC電源模塊設計技巧

    BOSHIDA ?提高效率的DC電源模塊設計技巧 設計高效率的BOSHIDA ?DC電源模塊可以幫助減少能源浪費和提高系統功耗,以下是些設計技巧: 1. 選擇高效率的功率轉換器:選擇
    的頭像 發表于 02-26 14:27 ?601次閱讀
    提<b class='flag-5'>高效率</b>的DC電源模塊設計技巧

    什么是有限狀態機?如何解決傳統有限狀態機狀態爆炸」問題?

    有限狀態機(Finite State Machine,簡稱FSM)是一種用來進行對象行為建模的工具,其作用主要是描述對象在它的生命周期內所經歷的狀態序列以及如何響應來自外界的各種事件。
    的頭像 發表于 02-17 16:09 ?6327次閱讀
    什么是有限<b class='flag-5'>狀態機</b>?如何解決傳統有限<b class='flag-5'>狀態機</b>「<b class='flag-5'>狀態</b>爆炸」問題?

    Verilog狀態機+設計實例

    在verilog中狀態機一種很常用的邏輯結構,學習和理解狀態機的運行規律能夠幫助我們更好地書寫代碼,同時作為一種思想方法,在別的代碼設計中也會有所幫助。
    的頭像 發表于 02-12 19:07 ?4292次閱讀
    Verilog<b class='flag-5'>狀態機</b>+設計實例
    主站蜘蛛池模板: 国产成人精品综合在线观看| 无遮掩H黄纯肉动漫在线观看星 | 色久久久综合88一本道| 无套内射CHINESEHD| 538prom国产在线视频一区| 国产精品久久久久久免费字体| 久久亚洲伊人中字综合精品| 乌克兰成人性色生活片| china野外18:19| 九九九九九热| 特级淫片大乳女子高清视频| 最新快播网站| 俄罗斯12一15处交| 久久足恋网| 亚洲一区二区三区乱码在线欧洲| 丰满少妇被猛烈进出69影院| 女人高潮时一吸一夹 | 欧美黑人经典片免费观看| 亚洲中文字幕乱码熟女在线| 高清国产免费观看视频在线| 欧美精品成人久久网站| 自拍 偷拍 亚洲 经典| 教室里的激情电影| 学校捏奶揉下面污文h| 国产成人a v在线影院| 日本无码人妻丰满熟妇5G影院| 9久久免费国产精品特黄| 蜜桃久久久亚洲精品成人| 最近免费中文字幕MV免费高清| 久久99这里只有精品| 亚洲成在人线视频| 国产精品热久久高潮AV袁孑怡| 色欲久久精品AV无码| 大香网伊人久久综合网2020| 全免费a级毛片免费看| 阿v天堂2017在无码| 欧美做真爱欧免费看| jizz教师| 日本无修肉动漫在线观看| 成人AV精品视频| 丝袜美女被艹|