国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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語言
    +關注

    關注

    183

    文章

    7644

    瀏覽量

    145596
  • 狀態機
    +關注

    關注

    2

    文章

    499

    瀏覽量

    29145
  • fsm
    fsm
    +關注

    關注

    0

    文章

    36

    瀏覽量

    13112
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    高效率與低噪聲兼得:LT83401/LT83402的深度剖析

    天要介紹的 LT83401/LT83402 同步降壓調節器,無疑是其中的佼佼者。 文件下載: LT83402.pdf 核心亮點:低噪聲與高效率的完美融合 超低噪聲表現 LT83401/LT83402 最顯著的特點之就是其超低噪
    的頭像 發表于 03-02 14:05 ?74次閱讀

    資產管理怎么提高效率

    資產管理怎么提高效率資產管理效率提升需從流程自動化、數據可視化、資源優化三方面入手,通過智能工具替代人工操作。廣州杰眾智能科技有限公司的RFID技術方案,可使資產盤點效率提升90%,閑置資產利用率
    的頭像 發表于 01-28 16:49 ?454次閱讀
    資產管理怎么提<b class='flag-5'>高效率</b>

    睿遠研究院丨IO-Link規范解讀(十一):ISDU狀態機與EVENT事件

    上篇我們介紹了ISDU的典型編碼格式和應用案例,本篇我們就來詳細介紹下,ISDU的狀態機,并把EVENT事件的邏輯,給大家好好解析下。 1主站ISDU狀態機 如上圖所示,ISDU的
    的頭像 發表于 11-29 18:28 ?4724次閱讀
    睿遠研究院丨IO-Link規范解讀(十一):ISDU<b class='flag-5'>狀態機</b>與EVENT事件

    為什么單片還在用C語言編程?

    最適合單片開發的編程語言實在太過晦澀難懂,學習起來非常的不方便,并且每一種單片的匯編指令有很大區別,所以想把個程序從這種單片
    發表于 11-28 07:37

    什么是狀態機

    時刻所存在的穩定的工作情況,系統在整個工作周期中可能有多個狀態。例如部電動機共有正轉、反轉、停轉這 3 狀態
    發表于 11-27 08:15

    嵌入式開發為何經常用到狀態機架構

    相悖。 狀態機就能解決邏輯完備性的問題。 狀態機一種以系統狀態為中心,以事件為變量的設計方法,它專注于各個狀態的特點以及
    發表于 11-25 07:08

    C語言和單片C語言有什么差異

    的目標代碼短、運行速度高、存儲空間小、符合C語言的ANSI標準,生成的代碼遵循Intel目標文件格式,而且可與A51匯編語言PL/M51語言目標代碼混合使用。 4、
    發表于 11-14 07:55

    睿遠研究院丨IO-Link規范解讀(六):主從站狀態機解析

    前言 書接上文,今天我們就來好好聊聊主從站的DL-Mode狀態機,還請各位童鞋前排坐好! 1主站狀態機解析 主站的DL-Mode狀態機有5個大狀態,也是我們很熟悉的 建立通信、開始、預
    的頭像 發表于 10-28 17:34 ?6199次閱讀
    睿遠研究院丨IO-Link規范解讀(六):主從站<b class='flag-5'>狀態機</b>解析

    在多相降壓轉換器中使用耦合電感器可提高效率

    在不影響性能或增加物理空間的情況下提高效率一種很有前景的方法是使用耦合電感器 (CL)。通過使用相間互感技術,CL 可出色的消除電流紋波,從而在保持兼容傳統布局的同時顯著提高效率。 本文將簡要概述多相降壓轉換器設計人員在
    的頭像 發表于 10-02 16:57 ?1935次閱讀
    在多相降壓轉換器中使用耦合電感器可提<b class='flag-5'>高效率</b>

    HER304高效率整流二極管規格書

    HER304高效率整流二極規格書
    發表于 09-19 17:32 ?0次下載

    AP8105:采用先進PFM控制架構的高效率、低紋波DC-DC升壓轉換器

    致 AP8105通過創新的PFM控制架構和精密的模擬設計,為低輸入電壓應用提供了高效率、低噪聲的功率解決方案。其卓越的電氣特性、靈活的設計選項和極簡的外部元件需求,使其成為電池供電設備的理想選擇。無論是消費電子產品還是工業應用,AP8105都能提供可靠、
    發表于 08-22 10:17

    高效率、6通道、白光LED驅動器,帶I2C接口 skyworksinc

    電子發燒友網為你提供()高效率、6通道、白光LED驅動器,帶I2C接口相關產品參數、數據手冊,更有高效率、6通道、白光LED驅動器,帶I2C接口的引腳圖、接線圖、封裝手冊、中文資料、英
    發表于 07-30 18:31
    <b class='flag-5'>高效率</b>、6通道、白光LED驅動器,帶I2<b class='flag-5'>C</b>接口 skyworksinc

    高電流、高效率電荷泵,具有自動定時器 skyworksinc

    電子發燒友網為你提供()高電流、高效率電荷泵,具有自動定時器相關產品參數、數據手冊,更有高電流、高效率電荷泵,具有自動定時器的引腳圖、接線圖、封裝手冊、中文資料、英文資料,高電流、高效率電荷泵,具有自動定時器真值表,高電流、
    發表于 07-29 18:32
    高電流、<b class='flag-5'>高效率</b>電荷泵,具有自動定時器 skyworksinc

    求助,關于srammaster.cydsn中狀態機的問題求解

    晚上好。 我目前正在學習 GPIF II。 查看..EZ-USB FX3 SDK1.3firmwaregpif_examplescyfxsrammastersrammaster.cydsn中的狀態機,有狀態START和START1。 這意味著什么?
    發表于 05-12 06:20

    MDD高效率整流管的工作原理:如何降低導通損耗?

    在高頻、高功率應用中,高效率整流管的導通損耗直接影響電路的整體能效和熱管理。MDD作為專業的二極管制造商,其高效率整流管因低正向壓降(VF)和快速恢復特性廣泛應用于開關電源(SMPS)、PFC電路
    的頭像 發表于 04-03 10:55 ?944次閱讀
    MDD<b class='flag-5'>高效率</b>整流管的工作原理:如何降低導通損耗?