chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

介紹一種高效率的c語言狀態(tài)機

冬至配餃子 ? 來源:最后一個bug ? 作者:bug菌 ? 2022-08-12 09:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

/***高效率狀態(tài)機***/

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

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

1)用判斷語句進行狀態(tài)機的分支


if(statue == STATUE_1)sStatue1Process();

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

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

elsesStatue4Process();


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

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

2)用函數(shù)指針高效提高狀態(tài)機效率

參考代碼如下:

pYYBAGL1p5GABeHLAAFYvFCT2hU881.png

poYBAGL1p5iANUklAAEKVJLXQxg843.png

pYYBAGL1p56AbI1MAACoAODWsEc134.png

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

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


審核編輯:劉清


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

    關注

    183

    文章

    7642

    瀏覽量

    144743
  • 狀態(tài)機
    +關注

    關注

    2

    文章

    497

    瀏覽量

    28900
  • fsm
    fsm
    +關注

    關注

    0

    文章

    36

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

    什么是狀態(tài)機?

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

    嵌入式開發(fā)為何經(jīng)常用到狀態(tài)機架構

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

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

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

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

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

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

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

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

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

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

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

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

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

    求助,關于srammaster.cydsn中狀態(tài)機的問題求解

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

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

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

    高效率整流二極管有什么特點

    。1.低正向壓降高效率整流二極管的個重要特點是其較低的正向壓降(Vf)。在傳統(tǒng)的硅二極管中,正向壓降通常在0.7V左右,而在高效率整流二極管(如肖特基二極管和快恢復
    的頭像 發(fā)表于 02-21 11:21 ?980次閱讀
    <b class='flag-5'>高效率</b>整流二極管有什么特點

    大功率直流電源如何提高效率

    大功率直流電源提高效率的方法主要包括以下幾個方面: 、優(yōu)化電源拓撲結構 電源拓撲結構是影響電源效率的關鍵因素之。常見的直流電源拓撲結構有線性穩(wěn)壓電源和開關穩(wěn)壓電源兩
    的頭像 發(fā)表于 12-23 10:12 ?1329次閱讀

    一種新型高效率的服務器電源系統(tǒng)

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